add smart decision of nfeatures
This commit is contained in:
parent
0f410ac54a
commit
7761d562b1
@ -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 */
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>() );
|
||||
}
|
||||
/*!
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user