首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >随机森林明显优于XGBoost -问题或可能?

随机森林明显优于XGBoost -问题或可能?
EN

Data Science用户
提问于 2022-01-06 11:09:08
回答 1查看 1.2K关注 0票数 6

我有大约180 K的观测数据,13个变量(混合的数值和分类特征)。这是二进制分类问题,但类是不平衡的(25:1对于负分类)。我想部署XGBoost (在R中),并达到最好的精确度和召回。为了处理不平衡问题,我尝试了正面类的重采样,以及正类的XGB高权重。然而,尽管召回率很高,但精确度很低(约0.10)。

My参数调优用于XGB:

  • 参数的随机搜索. 10次交互.5倍CV

参数间隔: max_depth = 3-10λ=0- 50γ=0 -10 min_child_weight =1 -10 eta =0.0 1-0.2 0

然后,我尝试了随机森林与上采样数据集,它表现惊人的召回0.88和精度0.73 (在测试数据集)。

有谁能告诉我,如果RF的性能超过了XGB,或者这是我做错了什么的迹象?非常感谢。

EN

回答 1

Data Science用户

回答已采纳

发布于 2022-01-07 09:20:30

随机林中有两件重要的事情:“套袋”和“随机”。广义地说:套袋意味着一次只使用一部分“行”(详见此处),而“随机”意味着只有一小部分“列”(特性,通常是默认的\sqrt{m} )被用来分割。这也有助于让看似“弱”的特征在预测中有发言权,或者避免模型中少数特征的优势(从而避免过度拟合)。

查看您的XGB参数,我注意到您没有对行和列进行子示例,这通过使用参数 colsample_bytreesubsample是可能的。您还可以使用scale_pos_weight来处理不平衡的类。如果数据中有一些占优势的特性或观察,那么设置列和行可能是有用的。我怀疑使用次抽样(这将是“随机梯度增强”),XGB的结果将会改进,并且“更接近”使用随机森林所获得的结果。

此外,确保你有足够的助推轮(有良好的学习进展)。您可以添加一个watchlist和一个early_stopping_rounds准则,以停止提高,以防取得更多的进展。在这种情况下,您将nrounds设置为“高”数字,并停止提高,以防在early_stopping_rounds步骤完成后不再有学习进展,就像在这个通用代码中那样。

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

https://datascience.stackexchange.com/questions/106766

复制
相关文章

相似问题

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