集成学习:为什么单打独斗不如“打群架”?(上篇)
如果你刚开始接触机器学习可能听说过“随机森林”“XGBoost”这些名字它们经常在各种数据竞赛里屠榜。这些方法的背后都站着一个共同的大佬——集成学习。说人话就是三个臭皮匠顶个诸葛亮。与其把所有赌注押在一个模型身上不如多找几个模型一起商量着办。听起来简单但背后其实藏着不少门道。集成学习到底是啥你就想象一下你要判断一个人有没有病。方案A找一位老专家单个模型他一个人说了算。方案B同时请十位医生每人独立给出判断最后投票决定。方案B就是集成学习的思路。哪怕每位医生的准确率只有60%比瞎猜好一点点十个人一起投票出错的概率也会急剧下降。这背后有简单的数学支撑但今天我们不讲公式只讲道理。在技术层面集成学习就是训练多个“弱模型”准确率比随机猜高一点就行然后用某种策略把它们组合成一个“强模型”。组合的方式可以是投票、取平均、或者让下一个模型专门纠正上一个模型的错误。那为啥要搞出集成学习它解决了什么问题说白了是因为单个模型太“拧巴”了。你训练一个决策树它可能非常深在训练集上表现完美——这叫过拟合相当于死记硬背答案换个新题就懵了。反之如果树很浅它又可能太简单连训练集的基本规律都抓不住——这叫欠拟合。这就陷入了一个两难想让它精准它就钻牛角尖想让它泛化它又学不到位。集成学习就是来打破这个局面的。它主要解决了三大痛点减少“翻车”概率单个模型很可能正好被你数据集里的某些异常值带偏。集成多个模型有的偏左有的偏右一平均反而把那些“偏激”的观点中和掉了。让不完美的模型也能有用现实里你很难搞到一个又稳又准的大模型。但你很容易搞出一堆“还行但各有短板”的小模型。集成学习就是把它们拼成一个“六边形战士”。对抗“噪声”和“样本偏差”真实数据总有脏数据、缺失值。单个模型可能被一条错误数据带跑偏但多个模型同时被同一条错误数据带跑的概率就低得多。所以说集成学习的诞生本质上是一种工程智慧既然我没办法造出一颗完美的“银弹”那我就用一堆“石子”把它们打磨成一件好武器。集成学习的核心思想就两个词多样性每个模型犯的错误最好不一样。如果十个医生都是同一个师父教出来的思路完全一样那集成就没意义了。准确性每个模型至少要比瞎猜强一点。全是菜鸡抱团也还是菜鸡。这两个条件满足集成后的效果往往能超过任何一个单模型。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2476970.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!