随机森林让一群“小专家”帮你做决定 一、先回顾单棵决策树有个“毛病” 趣味理解上节课我们做了好几道决策树习题比如奶茶店推荐饮品[天气类型] / | \ [晴天] [阴天] [雨天] ↓ ↓ ↓ [冰奶茶] [顾客年龄] [热奶茶] / \ [≤18岁] [18岁] ↓ ↓ [果茶] [热奶茶]还有超市给商品贴促销标签、判断蔬菜怎么定价——这些规则清晰、好懂画出来一目了然。但决策树有个明显短板——容易“过拟合”。什么叫过拟合好比奶茶店老板把每一位老顾客的偏好都记成规则“穿红衣服的小王来了就推荐果茶”“戴眼镜的小李来了就推荐热奶茶”……规则越记越多、越记越细结果来了一个新顾客老板反而不知道推荐什么了——因为他记的都是“个例”不是“规律”。决策树也一样树长得越深越会揪住训练数据里的个别细节和噪声不放遇到新数据反而判不准。更形象的比喻一棵决策树就像一个特别较真的店长——老顾客的喜好他记得滴水不漏但新顾客一进门他就“这人我没见过”反而不会推荐了。所以结论是一棵树靠不住。 笔记速记决策树直观好懂、能画出来但容易过拟合——死记个例换新数据就不会了。单棵树不稳定需要改进。二、新思路集成学习 趣味理解既然一棵树不稳那能不能多种几棵树让大家一起做决定这就是集成学习。回到奶茶店的例子与其只听一个店长的推荐不如让100位店员各自根据自己看到的顾客情况推荐饮品最后投票选最受欢迎的那款。一个店员可能看走眼、可能偏科只懂果茶不懂奶茶但100个店员投票个别人的小错误被互相抵消推荐更靠谱这就是“三个臭皮匠顶个诸葛亮”。再举两个例子加深印象看病一个医生可能误诊但让10个医生分别看最后会诊投票误诊概率大大降低。买手机只看一个博主测评容易被带节奏看几十个博主的综合评分判断更准。集成学习就是这个道理集体的智慧往往胜过单个“专家”。 笔记速记集成学习 组合多个模型集体做决定。核心思想就一句三个臭皮匠顶个诸葛亮——互相纠错比单个模型稳。三、随机森林是什么 趣味理解随机森林 很多棵决策树组成“森林”一起做决定。根据任务类型的不同做决定的方式也不同分类问题判断是哪一类→每棵树投票少数服从多数️回归问题预测一个数值→每棵树给个数全部取平均比喻一分类-投票还是奶茶店——100棵决策树就是100个“推荐员”每人根据天气、年龄给出推荐最后票数最多的饮品胜出。就像班委选举票多的当选。比喻二回归-取平均猜一位同学的体重——100个人各自估一个数比如有人猜50kg有人猜55kg把100个估计值平均一下往往比任何一个人的估计都准。为什么叫“森林”因为一棵两棵不够要种很多棵多到成“林”集体的力量才足够强大。 笔记速记随机森林 很多棵决策树 两次“随机”随机抽样数据随机选择特征 投票/平均。易混淆 分类问题投票少数服从多数回归问题取平均加起来除以总数。四、核心重点两个“随机” ⭐⭐这是本节课最重要的内容笔记本上一定要记先问为什么要“随机” 趣味理解如果100个店员都用完全一样的信息、完全一样的判断方式去推荐那他们会推荐出一模一样的饮品——投票还有什么意义比喻100个店员都只盯着“天气”看晴天全推冰奶茶、雨天全推热奶茶投票等于没投因为大家“想得一样错得也一样”。所以随机森林故意制造两种“随机”让每个“推荐员”各有特色、各有盲区这样综合起来时才能互相纠错。这两次随机就是随机森林名字里“随机”两个字的由来。 随机一随机抽样数据Bootstrap 自助采样 趣味理解从原始数据里有放回地随机抽取样本组成每棵树的训练集。先搞懂“有放回”是什么意思摸球比喻袋子里有5个球你摸出一个记下颜色再把它放回去然后摸第二个……因为放回去了同一个球可能被摸到好几次有的球运气差一次都没被摸到如果不放回地摸那每个球都恰好被摸一次——那就没有随机性了随机森林给每棵树准备数据用的就是这种“摸完放回”的方式。放到奶茶店的场景里看假设店里有100位顾客的消费记录每棵树随机抽100次有放回平均来说大约63位顾客的记录会被抽到至少一次剩下约37位顾客这棵树一次都没见过店员比喻给100位店员每人发一份不完全相同的顾客资料——有的顾客被重复提到有的压根没出现在他的资料里。大家研究的顾客不一样推荐自然不一样。这样做的好处每棵树看到的“顾客世界”都略有不同不会都犯同一个错。 笔记速记随机一 随机抽样数据有放回地抽样本样本可重复约1/3抽不到每棵树训练数据不同。 记法“摸完放回”——摸出的球放回去所以有的球被摸好几次有的球一次没摸到。 随机二随机选择特征 趣味理解每棵树在分裂节点时不是看所有特征而是随机挑一部分特征再选最优的。奶茶店比喻推荐饮品本来可以参考天气、顾客年龄、顾客性别、是否会员好几个信息。如果每棵树都看全部信息那大家的推荐逻辑差不多随机森林让每棵树只随机看其中两个——有的树看“天气年龄”有的树看“性别会员”角度不同推荐才能互补谁也不至于被某一个因素“带偏”超市促销比喻呼应上节课习题判断商品要不要贴促销标签本来可以看保质期、销量、进价、库存……随机森林让每棵树只随机看其中一部分有的树重“保质期”有的树重“销量”综合起来判断更稳。 笔记速记随机二 随机选择特征每次分裂时随机挑部分特征再选最优每棵树关注点不同从而进一步增强树与树之间的差异性。 记法“只看几个方面”——每棵树只看随机挑的几个特征不贪多角度才能不同。两个“随机”合起来解决了什么 趣味理解把两个随机串起来看随机生活比喻结果数据随机每人拿到的顾客资料不一样训练集不同特征随机每人关注的判断角度不一样关注点不同合起来店员们各看各的、各有侧重树与树不一样为什么这样就能“缓解过拟合”关键逻辑过拟合是因为一棵树死记个例比如把“穿红衣服的小王”记成规则。现在100棵树各自只看了不同的顾客、不同的角度每棵树“背”的东西不一样。某几棵树把个例当规律、钻牛角尖了 → 没关系大多数树没背错 →分类时投票把错的“投掉”回归时算平均把偏激的值“拉回来”就像买二手手机估价如果只有一个店员他可能因为看到一道划痕就拼命压价预测值偏低但让100个店员来估价有的人看到了划痕有的人看到了高配置最后把100个人的报价取个平均几个“想歪了”的极端报价就被综合抵消了。这就是随机森林比单棵决策树更稳定的关键多样性 多数投票/取平均。 笔记速记两个随机 → 树不一样 → 分类投票/回归取平均能互补 → 缓解过拟合 → 更稳定。核心公式一句话多样性 多数投票/取平均 随机森林的稳定。五、随机森林工作流程 趣味理解把前面所有内容串成一个流程就是随机森林的完整工作过程原始数据顾客记录 │ ┌──────┼──────┬──────┐ │ │ │ │ ← 随机抽样数据Bootstrap 树1 树2 树3 ... 树N │ │ │ │ ← 每次分裂随机选特征 投票 投票 投票 投票 或取平均 └──────┴───┬──┴──────┘ │ 多数票/平均值 最终结论三步走自助采样→ 给每棵树准备不同的训练数据分别建树→ 每棵树分裂时只看随机挑的特征投票/平均→ 分类投票回归取平均比喻串起来先给100位店员发不同的顾客资料随机一→ 每人只看自己关心的角度做推荐随机二→ 最后开会综合结论分类投票/回归平均。 笔记速记三步走① 自助采样 → ② 分别建树 → ③ 投票/平均。六、课堂讨论与闯关练习️6.1 趣味闯关练习1.【森林之心】随机森林之所以叫“森林”是因为它由许多______组成。A. 树叶B. 决策树C. 动物D. 数据答案B解析就像一片森林由很多树组成随机森林由很多棵决策树组成。树越多森林越“茂盛”判断结果通常越准确。2.【少数服从多数】在随机森林进行分类任务时比如判断一个动物是猫还是狗最终的结论是如何得出的A. 由第一棵决策树决定B. 由最准确的那棵决策树决定C. 所有决策树进行“投票”票数多的类别获胜D. 取所有决策树结果的平均值答案C解析这就像班级里选班长每个同学决策树都投票获得票数最多的候选人类别当选。这种“集体决策”的力量比单个人决策更可靠。注意选D那是回归任务的做法哦3.【真假判断】判断下列说法是否正确(1) 随机森林中的每一棵决策树看到的训练数据都是一模一样的。 答案错误解析随机森林使用“Bootstrap”方法即从原始数据中有放回地随机抽取样本为每棵树生成一个略有不同的训练集。这叫“袋外数据”让每棵树学到不同的知识。(2) 随机森林在构建每棵决策树时会考虑所有特征来找最佳分割点。 答案错误解析为了防止所有树都一样随机森林在每次分裂时只会从全部特征中随机选取一部分特征进行考察。这增加了树的多样性。6.2 小组讨论Q1如果每棵树都一模一样投票还有意义吗参考答案没有意义。投票的价值在于多样性——不同的树犯不同的错多数投票才能把个别错误“投掉”。两个“随机”就是为了保证这种多样性。Q2单棵决策树 vs 随机森林谁更稳定为什么参考答案随机森林更稳定。单棵树容易过拟合、换个数据就波动大随机森林靠“多样性 多数投票/取平均”互相纠错更稳、抗过拟合。Q3课程思政这个算法给你什么启发参考答案团队协作优于单打独斗。一个人可能偏科、会犯错但一个分工明确、各看一角度的团队通过讨论和综合判断能做出更可靠的决策——这正是今后工作中需要的职业素养。七、课堂小结 必记三个要点集成思想多棵决策树 单棵决策树“三个臭皮匠顶个诸葛亮”随机森林概念多棵树组成“森林”分类投票少数服从多数回归取平均两个“随机”① 随机抽样数据Bootstrap 自助采样 ② 随机选择特征随堂自测随机森林与单棵决策树是什么关系两个“随机”各指什么能用自己的话说出来就说明掌握了八、课后拓展任务 ✍️用自己的话解释随机森林为什么比单棵决策树更可靠请结合“两个随机”写不少于100字。写作提示先说单棵决策树的缺点过拟合、不稳定比如奶茶店把个例当规律再说随机森林怎么用“很多棵树”来解决重点讲两个“随机”分别让树变得怎样不同最后点出“多样性 多数投票/取平均”为什么能纠错、更稳定 本课只聚焦原理这些先了解就好本节课聚焦集成思想和两个“随机”不展开复杂参数和调参。下面这些是后续课程的内容先有个印象即可n_estimators森林里种多少棵树默认100越多越稳但越慢max_depth每棵树最深长多少限制它防钻牛角尖max_features每次分裂随机看几个特征——这就是“随机二”的参数bootstrap是否用有放回抽样默认开启——这就是“随机一”的参数代码实操我们会在后续上机课中一步步跑通鸢尾花例子今天先把原理吃透 ️ 全课概念速查卡考前背诵版概念一句话记住过拟合死记个例换新数据就不会集成学习团队做决定比一个人强随机森林很多棵决策树投票/取平均随机一随机抽样数据有放回约1/3抽不到随机二随机选择特征为什么随机让树不一样综合起来才有意义为什么稳定多样性 多数投票/取平均互相纠错分类 vs 回归分类投票回归平均参考资源菜鸟教程《随机森林》https://www.runoob.com/ml/ml-random-forest.htmlCSDN《十大算法之一随机森林算法原理讲解》https://blog.csdn.net/weixin_50804299/article/details/139783735上节课习题《决策树习题》https://blog.csdn.net/Michelle8023/article/details/151974273