首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改参数以防止xgboost精度卡住

如何更改参数以防止xgboost精度卡住
EN

Stack Overflow用户
提问于 2015-09-04 13:27:58
回答 2查看 1.5K关注 0票数 2

我正在尝试使用multi:softmax objective训练xgboost模型,但准确性得分卡住了。

代码:

代码语言:javascript
复制
#preparing dataset omitted
xgb_params = {
    "objective": "multi:softmax",
    "eta": 1,
    "num_class": 62,
    "max_depth": 10,
    "nthread": 4,
    "eval_metric": "merror",
    "print.every.n": 1,
    "silent": 1,
    "early.stop.round": 5
}
num_rounds = 5

mask = np.random.choice([False, True], len(X_train), p=[0.5, 0.5])
not_mask = [not i for i in mask]

dtrain = xgb.DMatrix(X_train[not_mask], label=y[not_mask])
dtrain_watch = xgb.DMatrix(X_train[mask], label=y[mask])
dtest = xgb.DMatrix(X_test)
watchlist = [(dtrain_watch, 'eval')]

gbdt = xgb.train(xgb_params, dtrain, num_rounds, watchlist)
preds = gbdt.predict(dtest)

输出:

代码语言:javascript
复制
[0] eval-merror:0.989950
[1] eval-merror:0.989950
[2] eval-merror:0.989950
[3] eval-merror:0.989950
[4] eval-merror:0.989950

我需要更改哪些参数来反映迭代中的任何更改eval-merror?

编辑:我已经尝试将eta更改为0.01,0.1,0.3和1,但都是徒劳的。

EN

回答 2

Stack Overflow用户

发布于 2018-02-06 19:58:16

我认为这不是关于参数,而是关于你的数据。

根据新的问题,您可以通过使用不同的数据集(例如kaggle )来测试它,并构建一个类似于此的模型,但可能使用不同的"num_class": x

票数 0
EN

Stack Overflow用户

发布于 2018-02-08 23:20:42

您可以使用sklearn GridSearchCV进行参数调整。但是如果你没有时间,那就增加early.stop.roundmax_depth,降低eta

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32390676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档