From d9ff9fadf62a88087ecd0eb244f348db15a753b1 Mon Sep 17 00:00:00 2001 From: tqchen Date: Tue, 11 Mar 2014 12:40:51 -0700 Subject: [PATCH] fix delete --- booster/xgboost_gbmbase.h | 6 ++++-- demo/test/runexp.sh | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/booster/xgboost_gbmbase.h b/booster/xgboost_gbmbase.h index c6bf3f3a0..fbd06c417 100644 --- a/booster/xgboost_gbmbase.h +++ b/booster/xgboost_gbmbase.h @@ -227,7 +227,7 @@ namespace xgboost{ utils::Assert( bid >= 0 && bid < (int)boosters.size(), "interact:booster_index exceed existing bound" ); psum -= boosters[ bid ]->Predict( feats, row_index, root_index ); if( mparam.do_reboost == 0 && buffer_index >= 0 ){ - this->pred_buffer[ buffer_index ] = psum; + this->pred_buffer[ buffer_index ] = psum; } } return psum; @@ -238,9 +238,11 @@ namespace xgboost{ utils::Assert( bid >= 0 && bid < mparam.num_boosters , "must specify booster index for deletion"); delete boosters[ bid ]; for( int i = bid + 1; i < mparam.num_boosters; ++ i ){ - boosters[ i - 1 ] = boosters[ i ]; + boosters[i-1] = boosters[ i ]; + booster_info[i-1] = booster_info[ i ]; } boosters.resize( mparam.num_boosters -= 1 ); + booster_info.resize( boosters.size() ); } /*! \brief update the prediction buffer, after booster have been updated */ inline void InteractRePredict( const FMatrixS &feats, bst_uint row_index, int buffer_index = -1, unsigned root_index = 0 ){ diff --git a/demo/test/runexp.sh b/demo/test/runexp.sh index 312f072fe..ca62140f6 100755 --- a/demo/test/runexp.sh +++ b/demo/test/runexp.sh @@ -16,12 +16,13 @@ python mknfold.py agaricus.txt 1 # interaction ../../xgboost mushroom.conf task=interact model_in=m1.model model_out=m2.model interact:booster_index=0 bst:interact:expand=1 ../../xgboost mushroom.conf task=interact model_in=m2.model model_out=m3.model interact:booster_index=0 interact:action=remove - +../../xgboost mushroom.conf task=interact model_in=m3.model model_out=m4.model interact:booster_index=0 bst:interact:expand=2 # this is what dump will looklike with feature map ../../xgboost mushroom.conf task=dump model_in=m1.model fmap=featmap.txt name_dump=dump.m2.txt ../../xgboost mushroom.conf task=dump model_in=m2.model fmap=featmap.txt name_dump=dump.m2.txt ../../xgboost mushroom.conf task=dump model_in=m3.model fmap=featmap.txt name_dump=dump.m3.txt +../../xgboost mushroom.conf task=dump model_in=m4.model fmap=featmap.txt name_dump=dump.m4.txt echo "========m1=======" cat dump.m1.txt @@ -32,6 +33,9 @@ cat dump.m2.txt echo "========m3========" cat dump.m3.txt +echo "========m4========" +cat dump.m4.txt + echo "========full======="