从零开始学AI21——决策树

本文以"洗豆子"比喻深入浅出地解读决策树核心概念:熵衡量混乱度,信息增益评估特征筛选效果,信息增益率抑制过拟合,基尼系数则以简单计算实现高效分类。从物理的熵增到机器学习的熵减,揭示了秩序与混乱的永恒博弈。最终回归香农信息论------信息即消除不确定性,比特是量化单位,香农定理为压缩与通信设下不可逾越的极限。万物皆在熵增中走向无序,而学习、自律与算法,正是对抗混沌的熵减之力。

熵 (Entropy) 、信息增益、信息增益率、基尼系数

这些概念是决策树的"灵魂",但教科书上的公式往往让人头大。

我们抛开对数和求和公式,用一个**"洗豆子"**的故事来重新理解它们。


1. 熵 (Entropy) ------ "混乱度"

想象你面前有一个大碗,里面装满了豆子。

  • 场景 A: 碗里装的全都是红豆。

    • 你闭着眼睛随便摸一颗,肯定是红豆。
    • 确定性 极高,混乱度极低。
    • 熵 = 0 (最纯净的状态)。
  • 场景 B: 碗里有50颗红豆,50颗绿豆。

    • 你闭着眼睛摸,根本猜不到是红还是绿。
    • 确定性 极低,混乱度极高。
    • 熵 = 1 (最混乱的状态,对于二分类来说)。
  • 场景 C: 碗里有90颗红豆,10颗绿豆。

    • 你大概率能摸到红豆,但也有一点点不确定。
    • 混乱度介于 A 和 B 之间。
    • 熵 ≈ 0.47。

总结: 熵就是一个数字,用来给"这碗豆子乱不乱"打分。分越低,豆子越纯。


2. 信息增益 (Information Gain) ------ "提纯效果"

现在你想把那碗**红绿混杂(熵很高)**的豆子分开。你手里有一个筛子(特征),比如"豆子的大小"。

  • 操作前: 大碗里的豆子很乱,熵 = 1.0。
  • 操作后(使用筛子):
    • 大豆子堆: 里面主要是红豆,混了一点绿豆。熵 = 0.2。
    • 小豆子堆: 里面主要是绿豆,混了一点红豆。熵 = 0.3。
    • 平均后熵: 假设两堆一样多,平均熵 = 0.25。

信息增益 = 以前的熵 - 现在的熵

Gain=1.0−0.25=0.75Gain=1.0−0.25=0.75

人话理解: 用这个筛子筛了一次,让混乱程度降低了 0.75。降得越多,说明这个筛子越好用。

(这是 ID3 算法的逻辑)


3. 信息增益率 (Gain Ratio) ------ "惩罚作弊者"

ID3 算法有一个大 Bug:它特别喜欢**"作弊"的筛子**。

  • 作弊筛子(比如身份证号): 这个筛子有 100 个孔,每个孔只能掉下去一颗豆子。
  • 效果: 筛完后,每堆只有 1 颗豆子。
  • 计算: 1 颗豆子肯定只有一种颜色(红或绿),所以每堆的熵都是 0。
  • 结果: 现在的熵 = 0。信息增益 = 1.0 - 0 = 1.0 (满分!)

ID3 会觉得:"哇!这个筛子太神了,瞬间完美分类!"

但其实这毫无意义(过拟合)。

C4.5 算法站出来说: "不行,你这个筛子把豆子分得太碎了,我要罚你。"

  • 惩罚项 (IV): 分得越碎(孔越多),罚分越高。
  • 信息增益率 = 信息增益 / 罚分。

这样一来,虽然"身份证号"的信息增益很高,但因为它的罚分极大,除完之后的增益率就很低了。


4. 基尼系数 (Gini Index) ------ "如果不纯,我就猜错"

基尼系数和熵的作用一模一样,都是衡量"乱不乱"。

只是衡量的方式不同。

游戏规则:

从碗里拿出一颗豆子,看着它的颜色(比如红),然后放回去。再拿出一颗豆子,猜它也是红色的。

你猜错的概率是多少?

  • 全是红豆: 第一颗是红,第二颗肯定是红。猜错概率 = 0。Gini = 0。
  • 红绿各半:
    • 情况1:拿出红(50%),猜下一颗是红,结果拿出绿(50%)。猜错概率 = 0.25。
    • 情况2:拿出绿(50%),猜下一颗是绿,结果拿出红(50%)。猜错概率 = 0.25。
    • 总猜错概率 = 0.5。Gini = 0.5。

熵 vs 基尼:

  • 熵: 涉及对数 (log⁡log) 运算,计算机算起来慢,像个文科生,算得精细。
  • 基尼: 只有平方 (p2p2) 运算,计算机算起来飞快,像个理科生,简单粗暴。
  • 实际效果: 两者切出来的树,99% 的情况下是一模一样的。所以现在大家都用 基尼(CART算法)。

终极一图流总结

概念 人话比喻 核心公式逻辑
熵 豆子乱不乱? −∑plog⁡p−∑plogp
信息增益 筛子让豆子变纯了多少? 原熵 - 现熵
信息增益率 筛子分得太碎要扣分! 增益 / 惩罚系数
基尼系数 连抽两次不一样的概率是多少? 1−∑p21−∑p2

决策树的工作流:

拿着一堆筛子(特征),挨个试一遍。算算用哪个筛子筛完后,基尼系数(或熵)降得最厉害?就用那个筛子切第一刀!

熵增与熵减

这是一个从物理学跨越到机器学习,最后上升到人生哲学的宏大概念。

一句话概括:

  • 熵增(Entropy Increase): 是**"堕落",是宇宙的本能**。如果不加干预,万物都会自发地变得混乱、无序、崩坏。
  • 熵减(Entropy Decrease): 是**"进化",是生命的抗争**。需要消耗能量,强行把混乱变得有序、精致、高级。

我们分三个维度来"讲人话"。


一、 物理学视角(宇宙的终极宿命)

1. 熵增定律(热力学第二定律)

这是物理界最令人绝望的定律。它告诉我们:在一个封闭系统内,事物总是自发地从有序走向无序(熵增)。

  • 例子:房间变乱
    • 你把房间收拾得整整齐齐(有序,低熵)。
    • 如果你什么都不做(不输入能量),过一个月,房间一定会落满灰尘、东西乱放(无序,高熵)。
    • 房间绝对不会自己变整洁。
  • 例子:耳机线
    • 你把耳机线理顺放在口袋里(有序)。
    • 拿出来时,它一定会打结(无序)。
  • 例子:泼出去的水
    • 杯子里的水是有形状的(有序)。
    • 泼出去后,水分子四散逃逸(无序),再也收不回来了。

结论: 熵增就是**"破坏"**,是自然界的随波逐流。

2. 熵减(薛定谔的生命论)

薛定谔(就是养猫的那个)说过:"生命以负熵为食。"

要想对抗熵增(房间变乱),你就必须做功(花力气去打扫)。

  • 开放系统 + 输入能量 = 熵减
    • 生物体(人)是一个开放系统。
    • 我们吃饭、呼吸(输入能量),是为了维持身体的秩序(细胞结构、体温),抵抗死亡(死亡就是身体彻底崩溃,熵最大化)。

二、 机器学习视角(决策树的本质)

在机器学习(特别是决策树)中,熵增熵减的含义非常具体:

  • 初始状态(高熵):

    • 你拿到的一堆原始数据,好人坏人混在一起,杂乱无章。
    • 这时候即使你闭眼瞎猜,错误率也极高。
  • 训练过程 = 熵减过程:

    • 决策树的每一次切分(提问),都是为了让数据变得更纯(有序)。
    • 信息增益(Information Gain) 的本质公式就是:
      Gain=原来的熵−现在的熵Gain=原来的熵−现在的熵
    • Gain 是正数,意味着现在的熵变小了。
  • 结论:

    所有的机器学习算法,本质上都是一台"熵减机"。 它们消耗算力(能量),从混乱的数据(高熵)中,提炼出规律和模型(有序,低熵)。


三、 哲学与管理视角(人生的逆水行舟)

这个概念现在在管理学和个人成长中非常火。

1. 熵增 = 躺平/内卷

  • 企业: 如果老板不折腾、不改革(不输入能量),公司内部的流程会越来越繁琐,人浮于事,山头林立,效率低下。这就是企业的熵增(大企业病)。
  • 个人: 如果你不学习、不自律(不输入能量),你的身材会发福,知识会遗忘,生活会变得一团糟。这是个人的熵增。
  • 本质: 熵增是舒服的,因为它顺应了自然规律(堕落很容易)。

2. 熵减 = 自律/创新

  • 企业: 华为任正非经常提"熵减"。通过裁员、重组、激活组织,打破旧的平衡,强行输入新能量,让企业恢复活力。
  • 个人: 健身、读书、早起。这些都很痛苦,因为你在逆天而行(对抗熵增),试图在一个混乱的世界里建立自己的秩序。
  • 本质: 熵减是痛苦的,但只有通过熵减,生命才能进化到更高的层级。

总结

  • 熵增 是下坡路 ,不用踩油门,顺势就下去了,但终点是混乱和消亡。
  • 熵减 是上坡路 ,必须时刻踩油门(消耗能量),虽然累,但终点是有序和生命。

决策树在做熵减,我们在生活中也要做熵减。

信息论、香农定理

我们已经讲了熵、熵增、机器学习中的信息增益。现在,我们要去拜访一下这切的源头------信息论(Information Theory)及其祖师爷克劳德·香农(Claude Shannon)。

如果你觉得前面的内容是"术"(具体的算法),那么信息论就是"道"(世界的底层规律)。


一、 什么是信息?(香农的颠覆性定义)

在 1948 年之前,人们认为"信息"是一个虚无缥缈、由语义决定的东西。

比如:"我爱你"这句话的信息量大不大?文科生可能会觉得很大。

但香农(这是个天才)站出来说:

"信息是用来消除不确定性的东西。"

  • 例子 A: 太阳明天从东方升起。
    • 这件事是 100% 确定的。你告诉我也没用。
    • 不确定性 = 0,信息量 = 0。
  • 例子 B: 中国队明天踢赢了巴西队。
    • 这件事发生的概率极低,极度不确定。
    • 如果你告诉我这件事发生了,我会非常震惊。
    • 不确定性极大,信息量巨大!

核心结论:

一件事情发生的概率越小,它所包含的信息量就越大。


二、 信息的度量:比特 (Bit)

香农不仅定义了信息,还给信息称了重。他创造了 Bit (比特) 这个单位。

1 Bit 的定义:

消除二选一的不确定性(抛硬币,50%/50%),所需要的信息量。

  • 猜硬币: 正面还是反面?我告诉你"是正面"。这句话的信息量就是 1 bit。
  • 猜ABCD四个选项: 答案是哪一个?
    • 先问:是AB吗?(1 bit) →→ 是。
    • 再问:是A吗?(1 bit) →→ 是。
    • 总共需要 2 bit。
  • 猜数字(0-100):
    • 二分查找法(大于50吗?小于25吗?...),大概需要问 7 次(27=12827=128)。
    • 所以这个信息量大约是 7 bit。

公式(自信息):

I(x)=−log⁡2P(x)I(x)=−log2​P(x)

(概率 PP 越小,−log⁡P−logP 越大)


三、 香农第一定理:无失真信源编码定理(压缩的极限)

这一定理回答了一个问题:一段文字、一张图片,最少能压缩到多小?

答案是:你不能压缩得比它的"熵"还小。

  • 熵 (Entropy): 就是这段信息的"平均信息量"。
  • 例子:
    • 如果一篇文章全是废话("啊啊啊啊啊..."),它的熵接近 0,你可以把它压缩得很小很小。
    • 如果一篇文章全是干货(每个字都不可预测),它的熵很高,你很难压缩它。

意义: 这为 ZIP、MP3、JPEG 等所有压缩技术画了一条不可逾越的红线。任何号称能突破香农极限的压缩算法,都是骗子。


四、 香农第二定理:有噪信道编码定理(通信的极限)

这一定理是现代通信(4G、5G、WiFi)的基石。

它回答了问题:在有噪音的电话线/空气中,我们传输数据的速度最快能有多快?而且不出错?

公式(香农公式):

C=B⋅log⁡2(1+SN)C=B⋅log2​(1+NS​)

  • CC (Capacity): 信道容量(网速上限,比如 100 Mbps)。
  • BB (Bandwidth): 带宽(路有多宽)。
  • S/NS/N (Signal-to-Noise Ratio): 信噪比(信号有多强 vs 噪音有多大)。

人话解读:

你想上网更快(提高 CC),只有两条路:

  1. 把路修宽(增加带宽 BB): 比如从 4G 变成 5G,用的频段更宽了。
  2. 喊得更响(提高信噪比 S/NS/N): 比如增加基站发射功率,或者减少干扰。

意义:

这个公式告诉了华为、高通等公司:别折腾了,这就是物理极限。

如果信噪比太差,带宽太窄,神仙也传不过去数据。所有的通信技术(如 5G 的大规模天线技术),本质上都是在想尽办法逼近这个 C 值。


五、 总结

信息论将"信息"从一种抽象的概念,变成了像"质量"、"能量"一样可以量化、计算的物理量。

  • 熵 定义了信息的混乱程度(压缩的下限)。
  • 香农公式 定义了信息的传输速度(通信的上限)。

所有的互联网、硬盘、手机通讯,本质上都是在香农画的这个圈里跳舞。

相关推荐
开开心心就好1 小时前
网页图片批量下载工具,输入链接就保存
服务器·算法·leetcode·支持向量机·pdf·ocr·1024程序员节
Dovis(誓平步青云)1 小时前
启元 T1 Pro 视觉伺服实践:基于 HSV 阈值与针孔测距的启元机器人寻物实现
开发语言·人工智能·机器学习·二次开发
Navigator_Z2 小时前
LeetCode //C - 1313. Decompress Run-Length Encoded List
c语言·算法·leetcode
dialect_3 小时前
CODEFORCES ROUND 1127 DIV2
开发语言·c++·算法
Nuanyt3 小时前
LeetCode Hot 100 链表专题(四)· 3 题(Java)
java·算法·leetcode·链表·双指针
灯澜忆梦3 小时前
LeetCode 1861. 旋转盒子|Go 双指针解法
算法
高洁013 小时前
端侧大模型的应用场景与工程实践
人工智能·深度学习·机器学习·transformer·tornado
软件派4 小时前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法
ZhengEnCi12 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法