首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RandomizedSearchCV用于XGboost、不平衡数据集和最优迭代计数(n_iter)

RandomizedSearchCV用于XGboost、不平衡数据集和最优迭代计数(n_iter)
EN

Stack Overflow用户
提问于 2019-05-23 07:17:15
回答 1查看 1.2K关注 0票数 1

我正在处理一个不平衡(9:1)的二进制分类问题,并希望使用Xgboost & RandomizedSearchCV。

如代码所示,有472,50,000 (5*7*5*5*5*5*6*4*9*10)超参数组合。通过10倍的CV,上述数字为4725万(4725万)。

它通常建议随机搜索5-10%的总组合应采取。472.5万人中的5-10%将是一个很高的数字.

那么,我的问题是,会是一个好的'n_iter‘值,这样才能在合理的时间/计算效率内获得好的结果?

注意一个潜在的查询:一些参数,如‘scale_pos_ are’,'max_delta_step‘通常不会被调优,但是我已经包含了它们,因为我的数据是不平衡的。

谢谢!

代码语言:javascript
运行
复制
param_dist= {
              "max_depth": [2,3,4,5,6],
              "learning_rate":[0.01,0.02,0.03,0.05,0.1,0.3,0.5],
    "min_child_weight":[1,2,3,4,5],
              "subsample":[i/10.0 for i in range(6,10)],
 "colsample_bytree":[i/10.0 for i in range(6,10)],
               "reg_alpha":[1e-5, 1e-2, 0.1, 1, 100],
              "gamma":[i/10.0 for i in range(0,5)],
    "n_estimators":[100,500,700,1000],
    'scale_pos_weight':[1,2,3,4,5,6,7,8,9],
    'max_delta_step': range(1,10,1)

              }
EN

回答 1

Stack Overflow用户

发布于 2019-05-23 08:41:21

添加注释作为回答。

你的问题取决于你平均需要多长时间来训练这个模型,对你来说多少钱是合理的。

这是随机搜索。因此,即使采用90%的组合,也不能保证找到最优参数。也有一个机会,最优的参数可能是在10个组合你选择。我建议阅读有关参数,并尝试修复一些取决于您的数据集和功能。

首先,你不需要调整scale_pos_weight。您必须将其修正为9,因为您有一个9:1不平衡的数据集。

另外,像学习率这样的参数可能不依赖于其他参数。你可以把它们排除在外,然后单独调整它们。

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

https://stackoverflow.com/questions/56269941

复制
相关文章

相似问题

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