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 );
|
if( !strcmp("bst:num_feature", name ) ) num_feature = atoi( val );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
public:
|
||||||
|
/*! \brief model parameters */
|
||||||
|
Param param;
|
||||||
public:
|
public:
|
||||||
/*! \brief number of thread used */
|
/*! \brief number of thread used */
|
||||||
GBMBaseModel( void ){
|
GBMBaseModel( void ){
|
||||||
@ -323,8 +326,6 @@ namespace xgboost{
|
|||||||
protected:
|
protected:
|
||||||
/*! \brief number of OpenMP threads */
|
/*! \brief number of OpenMP threads */
|
||||||
int nthread;
|
int nthread;
|
||||||
/*! \brief model parameters */
|
|
||||||
Param param;
|
|
||||||
/*! \brief component boosters */
|
/*! \brief component boosters */
|
||||||
std::vector<booster::IBooster*> boosters;
|
std::vector<booster::IBooster*> boosters;
|
||||||
/*! \brief some information indicator of the booster, reserved */
|
/*! \brief some information indicator of the booster, reserved */
|
||||||
|
|||||||
@ -10,7 +10,6 @@ test:data = "agaricus.txt.test"
|
|||||||
booster_type = 0
|
booster_type = 0
|
||||||
loss_type = 2
|
loss_type = 2
|
||||||
|
|
||||||
bst:num_feature=126
|
|
||||||
bst:eta=1.0
|
bst:eta=1.0
|
||||||
bst:gamma=1.0
|
bst:gamma=1.0
|
||||||
bst:min_child_weight=1
|
bst:min_child_weight=1
|
||||||
|
|||||||
@ -49,19 +49,29 @@ namespace xgboost{
|
|||||||
this->train_ = train;
|
this->train_ = train;
|
||||||
this->evals_ = evals;
|
this->evals_ = evals;
|
||||||
this->evname_ = evname;
|
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() );
|
unsigned buffer_size = static_cast<unsigned>( train->Size() );
|
||||||
|
|
||||||
for( size_t i = 0; i < evals.size(); ++ i ){
|
for( size_t i = 0; i < evals.size(); ++ i ){
|
||||||
buffer_size += static_cast<unsigned>( evals[i]->Size() );
|
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 ){
|
if( !silent ){
|
||||||
printf( "buffer_size=%u\n", buffer_size );
|
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>() );
|
this->eval_preds_.resize( evals.size(), std::vector<float>() );
|
||||||
}
|
}
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user