stack多个xgboost效果并不理想

  统计/机器学习 监督式学习    浏览次数:7186        分享
3

我在尝试那个汽车保险的练习赛,我train了五个不同的xgboost的模型(模型参量不同)。然后我把这几个模型stack在一起之后的预测roc auc反而不如单个最好的那个xgboost。是我哪里做错了吗?还是有什么隐藏的技巧?


补充:我说的stack就是把五个xgboost的预测结果取均值。

 

Robin峰   2017-09-22 23:40



   6个回答 
5

如果每个xgboost都是用一样的数据、一样的特征训练出来的,那么它们会具有更高的相关性。用多个相关性高的模型进行组装,通常效果不会很好,一般来说是不会超过这几个模型最好的那个的。


SofaSofa数据科学社区DS面试题库 DS面经

蓝色北方   2017-09-24 10:03

4

stack的时候一定要让各个模型多样化,百家争鸣那种,而不是千篇一律。你都是用xgb的话,模型应该很相似。

此外,stack本身也并不能确保总是有效的,有兴趣的话可以看看这篇论文Is Combining Classifiers with Stacking Better than Selecting the Best One?

SofaSofa数据科学社区DS面试题库 DS面经

zl_pku   2018-11-27 09:40

3

stack多个模型就好比街头采访,采访的人越多越好,但同时被采访对象越多样性,越容易得到接近真实的反馈信息。

1、相关性高的模型stack在一起通常效果不好的。因为它们没有足够的多样性,彼此之间并不能提供很多不同的信息。

2、你也可以试试加权取平均,而不是等权重的平均。


SofaSofa数据科学社区DS面试题库 DS面经

ljljlj   2017-09-26 21:13

2

我感觉这个也是要看运气的(我算是新鲜人,不太懂)。

有时候stack一样效果就很好,有时候stack一下效果反而很烂,感觉和数据本身关系挺大的。效果可能也挺随机的,cross validation的效果好就用,不好就不用。

SofaSofa数据科学社区DS面试题库 DS面经

wxjjnss   2018-11-15 11:24

1

楼主可以尝试在每组xgb的特征上引入差异性

SofaSofa数据科学社区DS面试题库 DS面经

tianjiayang0711   2018-12-01 16:07

0

题主的方法准确地说应该是bagging,而不是stack吧

SofaSofa数据科学社区DS面试题库 DS面经

dzzxjl   2018-03-08 12:54

stacking和bagging的区别:http://sofasofa.io/forum_main_post.php?postid=1001591 - 派大星   2018-03-08 12:57
想说averaging的,打错了,不好意思。看了你给的链接,averaging应该还是属于stacking的 谢谢 - dzzxjl   2018-03-08 13:02
所以也并不是真正意义的stacking,也不是bagging - 派大星   2018-03-08 13:02


  相关讨论

xgboost怎么调参?

xgboost是怎么做到regularization的?

为什么lightgbm比xgb快?

到底什么时候用lightgbm什么时候用xgb

GBDT和XGBoost使用的都是回归树,原理上是怎么支持解决分类问题的?

xgboost中的决策树的复杂度是怎么定义的?

xgboost为什么会有seed?随机性体现在哪里?

GBDT和XGBoost在叶子节点权重计算上有什么不同?

xgboost展开到二阶导数有什么好处啊

xgboost里的每棵树是不是等权重的?

  随便看看

把tf.Tensor转换为numpy array

matplotlib.pyplot画图的标题中插入变量

向量梯度下降优化的最佳步长?

决策树、随机森林中的多重共线性问题

怎么让DataFrame按照某一列绝对值从小到按排列?