add smart decision of nfeatures

This commit is contained in:
tqchen 2014-03-01 21:49:29 -08:00
parent 0f410ac54a
commit 7761d562b1
3 changed files with 17 additions and 7 deletions

View File

@ -88,6 +88,9 @@ namespace xgboost{
if( !strcmp("bst:num_feature", name ) ) num_feature = atoi( val );
}
};
public:
/*! \brief model parameters */
Param param;
public:
/*! \brief number of thread used */
GBMBaseModel( void ){
@ -323,8 +326,6 @@ namespace xgboost{
protected:
/*! \brief number of OpenMP threads */
int nthread;
/*! \brief model parameters */
Param param;
/*! \brief component boosters */
std::vector<booster::IBooster*> boosters;
/*! \brief some information indicator of the booster, reserved */

View File

@ -10,7 +10,6 @@ test:data = "agaricus.txt.test"
booster_type = 0
loss_type = 2
bst:num_feature=126
bst:eta=1.0
bst:gamma=1.0
bst:min_child_weight=1

View File

@ -49,19 +49,29 @@ namespace xgboost{
this->train_ = train;
this->evals_ = evals;
this->evname_ = evname;
//assign buffer index
// estimate feature bound
int num_feature = (int)(train->data.NumCol());
// assign buffer index
unsigned buffer_size = static_cast<unsigned>( train->Size() );
for( size_t i = 0; i < evals.size(); ++ i ){
buffer_size += static_cast<unsigned>( evals[i]->Size() );
num_feature = std::max( num_feature, (int)(evals[i]->data.NumCol()) );
}
char snum_pbuffer[25];
sprintf( snum_pbuffer, "%u", buffer_size );
char str_temp[25];
if( num_feature > base_model.param.num_feature ){
sprintf( str_temp, "%d", num_feature );
base_model.SetParam( "bst:num_feature", str_temp );
}
sprintf( str_temp, "%u", buffer_size );
base_model.SetParam( "num_pbuffer", str_temp );
if( !silent ){
printf( "buffer_size=%u\n", buffer_size );
}
base_model.SetParam( "num_pbuffer",snum_pbuffer );
// set eval_preds tmp sapce
this->eval_preds_.resize( evals.size(), std::vector<float>() );
}
/*!