xgboost.train
在xgboost.XGBRegressor
接受时将忽略参数n_estimators 。在xgboost.train中,增强迭代(即n_estimators)由num_boost_round(默认值:10)控制
建议n_estimators
从提供给xgb.train
它的参数中删除并替换为num_boost_round
。
因此,像这样更改您的参数:
params = {'objective': 'reg:linear',
'max_depth': 2, 'learning_rate': .1,
'min_child_weight': 3, 'colsample_bytree': .7,
'subsample': .8, 'gamma': 0, 'alpha': 1}
像这样训练xgb.train:
model = xgb.train(dtrain=xgtrain, params=params,num_boost_round=500)
您将获得相同的结果。
或者,保持xgb.train不变,并像这样更改XGBRegressor:
model = XGBRegressor(learning_rate =.1, n_estimators=10,
max_depth=2, min_child_weight=3, gamma=0,
subsample=.8, colsample_bytree=.7, reg_alpha=1,
objective= 'reg:linear')
然后,您也将获得相同的结果。