【发布时间】:2016-04-13 00:04:33
【问题描述】:
我正在尝试使用 XGBoosts 分类器对一些二进制数据进行分类。当我做最简单的事情并且只使用默认值时(如下)
clf = xgb.XGBClassifier()
metLearn=CalibratedClassifierCV(clf, method='isotonic', cv=2)
metLearn.fit(train, trainTarget)
testPredictions = metLearn.predict(test)
我得到了相当好的分类结果。
我的下一步是尝试调整我的参数。从参数指南中猜测... https://github.com/dmlc/xgboost/blob/master/doc/parameter.md 我想从默认开始,然后从那里开始工作......
# setup parameters for xgboost
param = {}
param['booster'] = 'gbtree'
param['objective'] = 'binary:logistic'
param["eval_metric"] = "error"
param['eta'] = 0.3
param['gamma'] = 0
param['max_depth'] = 6
param['min_child_weight']=1
param['max_delta_step'] = 0
param['subsample']= 1
param['colsample_bytree']=1
param['silent'] = 1
param['seed'] = 0
param['base_score'] = 0.5
clf = xgb.XGBClassifier(params)
metLearn=CalibratedClassifierCV(clf, method='isotonic', cv=2)
metLearn.fit(train, trainTarget)
testPredictions = metLearn.predict(test)
结果是一切都被预测为条件之一,而不是另一个。
奇怪的是,如果我设置了
params={}
我希望给我与不提供任何参数相同的默认值,但我得到了同样的事情发生
那么有人知道 XGBclassifier 的默认值是什么吗?这样我就可以开始调优了吗?
【问题讨论】:
-
这个问题遇到了类似的行为,但没有给出答案stackoverflow.com/questions/33470477/…
标签: python scikit-learn classification analytics xgboost