深度学习篇---再看决策树
第一部分:故事的开端 - 人类的决策方式
想象一下,你要判断一个水果是不是苹果,你会怎么思考?
传统决策过程:
-
"如果它是红色的..."
-
"而且是圆的..."
-
"并且大小像拳头..."
-
"那么它可能是苹果"
这其实就是最原始的决策树思想!人类天生就是用这种"如果-那么"的规则来思考的。
第二部份:第一代 - 决策树的诞生(1980s)
是什么?
决策树就像是一个问答游戏:
它是红色的吗? ├── 是 → 它是圆的吗? │ ├── 是 → 可能是苹果 🍎 │ └── 不是 → 可能是辣椒 🌶️ └── 不是 → 可能是香蕉 🍌
为什么需要它?
在决策树之前,很多模型都是"黑箱":
-
神经网络:不知道内部怎么决策
-
统计模型:需要很多数学假设
决策树的革命性在于:
-
可解释性强:决策路径一目了然
-
无需太多预处理:不怕缺失值,能处理混合类型数据
-
符合人类直觉:医生、银行家都能看懂
怎么做?
主要算法:
-
ID3(1986):用"信息增益"来选择问题
-
C4.5(1993):ID3的升级版,能处理连续值和缺失值
-
CART(1984):既能分类也能回归
信息增益比喻:
就像侦探破案,先问那个能"最大程度缩小嫌疑范围"的问题
第三部分:决策树的问题 - 催生创新的痛点
问题1:过拟合 - "死记硬背的学生"
# 决策树容易犯的错:
训练数据:小明考了95分 → 因为他穿了红衣服
小红考了60分 → 因为她用了蓝铅笔
# 树学会了所有细节,包括噪声!
# 在新考试中:穿红衣服但考砸了 → 模型懵了
表现: 在训练集上表现完美,在测试集上很差
问题2:不稳定性 - "墙头草"
# 训练数据稍微变动一点 原始数据:[A, B, C, D, E] → 树结构:A -> B -> C 变动数据:[A, B, C, D, F] → 树结构:B -> A -> D # 一点点数据变化就导致完全不同的树!
问题3:局部最优 - "近视眼"
每次分裂只考虑当前最优,不看长远影响
第四部分:第二代 - 集成学习的兴起
核心思想:三个臭皮匠,顶个诸葛亮
发现单个决策树不可靠后,研究者想到了集体智慧:
1. Bagging(1994) - "民主投票"
# 思路:训练多个模型,投票决定
模型1预测:苹果
模型2预测:苹果
模型3预测:香蕉
模型4预测:苹果
模型5预测:苹果
最终结果:苹果(4票 vs 1票)
2. Boosting(1990s) - "错题重做"
# 思路:逐个训练模型,每个关注前一个的错误
模型1:学会了区分苹果和香蕉,但橙子分不好
模型2:专门学习区分橙子
模型3:专门处理模型1和2都搞不定的情况
...
最终:加权组合所有专家
第五部分:关键突破 - 为什么是"随机"的森林?
传统Bagging的问题:
如果所有树都用相同的特征,它们会很相似 → 投票没意义
灵光一现的创新:
何不在两个层面都引入随机性?
创新1:Bootstrap抽样 - "不同的训练集"
# 传统方法:所有树看相同的数据
# Bootstrap:每棵树看不同的数据子集
树1看到:[样本1, 样本1, 样本3, 样本5, 样本8] # 有放回抽样
树2看到:[样本2, 样本4, 样本4, 样本6, 样本7]
树3看到:[样本1, 样本3, 样本5, 样本7, 样本7]
...
创新2:随机特征选择 - "不同的专业视角"
# 传统方法:所有树考虑所有特征
# 随机森林:每棵树只考虑部分特征
树1(颜色专家):只根据[颜色, 形状]做判断
树2(重量专家):只根据[重量, 质地]做判断
树3(大小专家):只根据[大小, 颜色]做判断
...
这个创新的精妙之处:
-
强制多样性:确保每棵树都是真正的"独立专家"
-
降低相关性:树之间差异大,集体决策更可靠
-
抗过拟合:单个树可能过拟合,但集体会平均掉错误
第六部分:随机森林的正式诞生
时间线:
-
2001年:Leo Breiman正式提出"Random Forests"概念
-
理论证明:通过大量不相关的弱学习器,可以组合成强学习器
完整流程:
def 构建随机森林(数据, 树的数量):
森林 = []
for i in range(树的数量):
# 1. 随机抽样数据
子数据 = bootstrap抽样(数据)
# 2. 构建决策树
树 = 构建决策树(子数据, 特征随机选择=True)
# 3. 加入森林
森林.append(树)
return 森林
def 预测(新样本, 森林):
所有预测 = []
for 树 in 森林:
预测 = 树.预测(新样本)
所有预测.append(预测)
return 投票(所有预测) # 或者取平均
第七部分:历史意义和影响
为什么随机森林如此成功?
-
简单有效:比单个决策树稳定,比神经网络简单
-
开箱即用:默认参数就很好,不需要复杂调参
-
可解释性:虽然不如单棵树,但比深度学习好理解
-
理论基础:有大数定律和多样性理论支撑
在机器学习历史上的地位:
决策树 (1980s)
↓
Bagging (1994)
↓
随机森林 (2001) ← 里程碑!
↓
梯度提升树 (XGBoost, LightGBM)
↓
深度森林 (2017)
总结:从决策树到随机森林的进化之路
| 阶段 | 核心思想 | 好比... | 解决的问题 |
|---|---|---|---|
| 决策树 | 单一决策路径 | 一个专家独自判断 | 可解释性、简单问题 |
| Bagging | 多个模型投票 | 专家委员会 | 稳定性、方差大 |
| 随机森林 | 随机化的委员会 | 来自不同领域的专家团 | 过拟合、泛化能力 |
关键洞见:
随机森林的成功不在于让每个树变得更"聪明",而在于让它们变得足够"不同",然后通过集体智慧抵消个体的错误。
这就是为什么我说:随机森林的美丽不在于单个树的精度,而在于整个森林的多样性!
更多推荐
所有评论(0)