百科问答小站 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是不是不行? 
  如果一个行业大佬向你说了一件幼稚的事情,你会觉得这话是另有玄机,还是大佬自己就没整明白呢? 
  中国目前的人工智能在全球处于什么水平? 
  计算机视觉(cv)方向今年招聘情况怎么样?是否已经人才过剩? 
  微软小冰测颜值是否比较准?为什么? 
  如何理解MCMC中的细致平稳条件? 
  如何看待「机器学习不需要数学,很多算法封装好了,调个包就行」这种说法? 
  计算机系学生应该怎样正确管理自己的电脑? 
  如何评价深度学习之父Hinton发布的Capsule论文? 
  如何正确理解小概率事件,以及概率和哲学的关系? 

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





© 2024-05-14 - tinynew.org. All Rights Reserved.
© 2024-05-14 - tinynew.org. 保留所有权利