百科问答小站 logo
百科问答小站 font logo



为什么做stacking之后,准确率反而降低了? 第1页

  

user avatar   breaknever 网友的相关建议: 
      

很有意思的问题,谈谈我的看法。

首先不了解的stacking的朋友可以认为它是一种集成框架,集多个不同模型的长处而产生更好的结果。和bagging相同,stacking也需要多个基分类器(base classifier),来构成差异化(diversity)。对比bagging和stacking:

  • stacking中的各个模型(基分类器)追求的是“准而不同”。stacking中的子模型一般应该是独立准确,而不同的基学习器之间有所差异。
  • bagging中的基学习器追求的是“弱和不同”。bagging中的学习器往往是决策树,主要就是看中了决策树的不稳定性(instability)。过于准确的基学习器会使得bagging的集成失去意义。

stacking另一个比较特别的是层状结构。以常见的两层stacking为例,第一层是不同的基模型(多个),而第二层是以上一层基模型输出结果为输入数据的分类器(一个)。从某种意义上看,和神经网络的“结构相似”。为了防止过拟合,一般第二层的模型不再使用原始训练数据进行训练,而仅依赖于第一层训练器的输出结果。比较详细的介绍可以参考 @Kris Zhao@峰峰 [1, 2]在知乎上回答,此处不再赘述。

stacking是否一定可以提升效果呢?是否集成后比单个基学习器要好?

  • 这个首先和你怎么做的stacking有很大关系,不是每一种stacking都有“质量保证” [5]。早期的很多stacking方法从实验角度看效果一般,但也不至于退步
  • 其次从理论上来看,现在比较通用stacking模型(见下图中的super learning),已经在理论上证明了集成结果应该"渐进等价"于其第一层中的最优子模型[3]。因此stacking的结果不应该有大幅度下降。
  • 不谈公式。仅从集成的思路上看,假设多个学习器之间却有不同、互相独立,且最终合并起来,那么每个单独模型的方差(variance)应该有所降低,最终结果应该提升。即使多个相似基学习器并不互相独立、甚至极端情况下完全相同,也不会恶化集成结果,最多是没有提升罢了。这个想法可以类比回归中的共线性,一般主要影响解释能力,而不是预测能力所以常常会保留不作处理。所以stacking直觉上应该也不会恶化预测能力。

那么问题来了,为什么依然有可能表现不佳?我有几个猜测:

  • 本身数据集就不大,stacking不适合极小的数据集。
  • 很有可能是代码上就出了问题,比如没有正确的使用交叉验证。
  • 个别模型因为某种不明原因现奇差,在巧合状况下决定了第二层输入的数据。
  • 第二层的模型选择问题,比如在多标签预测下和二分类下的选择应有所差别。可以参考[4]。

所以你也看出来,我们都猜不到为什么你的模型不工作,或者stacking后大幅度下降。在有限的信息下,给出一些建议

  • 观察每个子模型,移除那些明显逊色的模型。
  • 继续丰富子模型的种类。如果想不出新的模型,可以换不同参数的类似模型。
  • 如果你的数据集非常小,stacking不一定有效,没有必要坚持用stacking。
  • 重新检查基学习器的训练,可以尝试用randomized search来包括一些新的“准而不同”的模型。
  • 还有一种微乎其微的可能性,就是你的模型事实上提升了。但准确率(accuracy)不是很好的衡量标准(当数据严重不平衡的时候),你误以为效果变差。所以可以试试ROC。

[1] 【干货】比赛后期大招之stacking技术分享

[2] 详解Stacking

[3] Van der Laan, M.J., Polley, E.C. and Hubbard, A.E., 2007. Super learner. Statistical applications in genetics and molecular biology, 6(1).

[4] Seewald, A.K., 2002, July. How to make stacking better and faster while also taking care of an unknown weakness. In Proceedings of the nineteenth international conference on machine learning (pp. 554-561). Morgan Kaufmann Publishers Inc..

[5] Džeroski, S. and Ženko, B., 2004. Is combining classifiers with stacking better than selecting the best one?. Machine learning, 54(3), pp.255-273.




  

相关话题

  有没有根据一张人物的立绘正面像,自动生成同风格各侧面角度像并自动衍生表情的软件啊? 
  如何看待阿里平头哥发布的全球最高性能 AI 芯片「含光 800」?这款芯片核心技术是什么呢? 
  分类问题的label为啥必须是 one hot 形式? 
  想做机器人,有什么好的发展方向? 
  人工智能就业前景越来越严峻了,你还在坚持吗? 
  如何评价 BERT 模型? 
  Facebook 的人工智能实验室 (FAIR) 有哪些厉害的大牛和技术积累? 
  金融学及金融从业者如何应对人工智能和大数据? 
  如何解读 Jeff Dean 等联合在 arXiv 上发布的用深度学习分析电子病历的论文? 
  如何理解attention中的Q,K,V? 

前一个讨论
哪些学校的校歌很好听?
下一个讨论
如何看待日本明仁天皇将于2019年退位?





© 2025-05-04 - tinynew.org. All Rights Reserved.
© 2025-05-04 - tinynew.org. 保留所有权利