我使用以下的xgboost sklearn接口来创建和训练xgb模型-1。
clf = xgb.XGBClassifier(n_estimators = 100, objective= 'binary:logistic',)
clf.fit(x_train, y_train, early_stopping_rounds=10, eval_metric="auc",
eval_set=[(x_valid, y_valid)])
然后可以通过原始的xgboost创建xgboost模型,如下所示的model-2:
param = {}
param['objective'] = 'binary:logistic'
param['eval_metric'] = "auc"
num_rounds = 100
xgtrain = xgb.DMatrix(x_train, label=y_train)
xgval = xgb.DMatrix(x_valid, label=y_valid)
watchlist = [(xgtrain, 'train'),(xgval, 'val')]
model = xgb.train(plst, xgtrain, num_rounds, watchlist, early_stopping_rounds=10)
我认为模型1和模型2之间的所有参数都是相同的。但是验证分数不同。那么模型1和模型2之间有什么区别吗?
xgb.XGBClassifier
的 AUC 值只有 0.51,而xgb.train
的 AUC 值却是 0.84。我不知道为什么会这样。 - Little Bobby Tablessklearn
接口缺少一些选项。例如,DMatrix
类的set_group
方法对于排名至关重要,在sklearn
接口中没有类似的功能。 - xolodec