随机森林(Random Forest),这是一个非常强大的机器学习预测模型,在供应链的需求预测、库存预测、缺货预警等方面越来越常用。
🌳 一、随机森林是什么?
随机森林 = 很多决策树的组合
它不是单颗树,而是一片“森林” 🌲🌲🌲,每棵树都用来预测一部分信息,最后通过“多数投票”或“平均值”来给出最终预测结果。
🔧 二、随机森林的核心逻辑
📍1. 数据随机抽样(Bootstrap)
从原始数据集中,随机有放回地抽出若干子样本,训练多棵“不同的树”。
📍2. 特征随机选择(Feature Bagging)
每棵树在分裂节点时,只考虑部分随机特征,增强多样性。
📍3. 多树集成(Ensemble)
所有决策树都独立建模,预测时:
分类任务: 多数投票
回归任务: 所有树预测值的平均值
🧮 三、随机森林预测算法流程(回归版)
我们希望利用输入特征 X 来预测目标变量 y的值。整个流程分为两大部分:
📦 第一部分:训练阶段(Train)
我们训练一个由 B 棵树组成的随机森林:


🔮 第二部分:预测阶段(Predict)

🎯 示例:预测门店销量
你收集了如下特征:
实操逻辑:
每棵树可能这样分裂:
如果温度 > 28 ➝ 看是否促销 ➝ ...
如果是周末 ➝ 销量高 ➝ ...
然后对某个新日期(温度=31,周末,有促销):
各棵树可能预测值为 185、190、195...
最终预测销量为平均值 ≈ 190 杯
⚙️ 模型评估指标(回归任务常用)
📌 特别补充:特征重要性
训练完成后,随机森林可以输出每个特征对预测结果的影响程度(Feature Importance),非常适合用于业务解读,如:
这在需求分析中非常实用。
🧠 小结
整个逻辑其实很简单的,对于数学不好的我们来举个简单的例子再看下这个逻辑:
🎓 假设你是一个销售经理,要预测下个月的销量
你手上有过去 100 天的数据,每天的:
是否周末
是否促销
气温
实际销量
现在你打算训练一个**“预测模型”**,让它未来自动告诉你:“下周六,30℃,做促销,预计能卖多少杯奶茶?”
🌲 你不相信一棵树(模型),你要找一群顾问(很多树)
随机森林的理念是这样的:
“我不只听一个专家说(单棵决策树),我找 100 个顾问,每人从不同角度、不同数据来看问题,最后大家平均意见来预测销量。”
🧩 训练阶段拆解成 4 步(类比说明)
✅ 步骤1:从原始数据里抽样(100次)
你手头有100天的数据——
你不让每个顾问都看完整数据,而是各自随机抽一部分数据去看,有重复也可以。
比如:
顾问1 看了:第2、3、3、7、9、12天的数据
顾问2 看了:第1、4、4、8、9、10、18、22天的数据
这叫 Bootstrap 采样
✅ 步骤2:每个顾问构建自己的「决策树」
他们不是“拍脑袋”,而是“有逻辑地拆数据”:
顾问1可能说:
如果温度 > 28℃
且是周末 ➝ 预测销量 = 190
否则 ➝ 预测销量 = 160
如果温度 <= 28℃
且有促销 ➝ 预测销量 = 150
否则 ➝ 预测销量 = 130
每个人根据自己那份随机数据,长出不同的决策逻辑树。
✅ 步骤3:每次分裂节点,只看部分变量(随机特征)
为了防止所有人都“看一样的因素”,你给他们规定:
“你在每个判断点,只能随机挑几个特征看,不能全都看。”
比如:
顾问1 在某节点只在「促销」和「气温」中选一个来判断
顾问2 在另一节点只看「是否周末」或「气温」
这一步增加了“多样性”,防止大家都建出一模一样的树。
✅ 步骤4:重复上面 100 次,得到 100 棵树(顾问)
每棵树都有自己的一套预测方式。
这就叫:训练阶段完成!
🔮 最终预测
以后给一组新数据(比如明天周六、30℃、做促销),你会:
把数据输入到所有 100 棵树
每棵树给一个预测销量(比如:185、195、200……)
然后平均这些结果,就是最终预测值
🧠 一句话总结训练逻辑
随机森林训练时,构建了很多“有自己观点”的顾问(树),每个都从不同的子数据 + 特征去建模,然后你靠“群体智慧”来预测未来。
评论