← 返回目录

Chapter 13: 决策树

Decision Tree

📖 本章概要

决策树是一种基于树形结构的分类算法,通过递归二分法将数据划分为不同区域。 本章介绍决策树的树形结构、信息熵、信息增益、基尼指数等核心概念,并通过鸢尾花分类实战展示如何使用决策树进行分类。

13.1

决策树:可以分类,也可以回归

Decision Tree • 图1-3

决策树类似二叉树结构,由根节点、内部节点和叶节点构成。 每个节点根据某个特征的阈值进行二分划分,形成左右子树。 通过控制最大叶节点数或最大深度可以进行剪枝,避免过拟合。

✦
13.2

信息熵:不确定性度量

Information Entropy • 公式1-6 • 图4

信息熵起源于热力学,由香农(1948)引入信息论,用于度量随机变量的不确定性。 对于二分类问题,Ent(Ω) = -p log₂(p) - (1-p) log₂(1-p)。 信息熵越大,数据越混乱;信息熵越小,数据纯度越高。在p=0.5时熵最大。

✦
13.3

信息增益:通过划分,提高确定度

Information Gain • 公式7-16 • 图5

信息增益量化划分前后信息熵的变化:Gain(Ω, a) = Ent(Ω) - Ent(Ω, a)。 划分后的熵是各子集熵的加权和。决策树选择能最大化信息增益的特征和阈值进行划分, 使得划分后的子集更加"纯净",不确定性降低。

✦
13.4

基尼指数:指数越大,不确定性越高

Gini Index • 公式17-18 • 图6

基尼指数是另一种衡量数据集纯度的指标:Gini(Ω) = 1 - Σp²ᵢ。 对于二分类,Gini(Ω) = 2p(1-p)。基尼指数与信息熵作用相似,但计算更简单, 不涉及对数运算。sklearn默认使用Gini指数作为决策树划分标准。

✦
13.5-13.6

鸢尾花分类实战

Iris Classification • 最大叶节点数 • 最大深度 • 图7-15

使用sklearn的DecisionTreeClassifier对鸢尾花数据进行分类。 通过调节max_leaf_nodes(最大叶节点数)或max_depth(最大深度) 可以控制树的复杂度,实现剪枝,避免过拟合。 图7-10展示不同叶节点数的效果,图12-15展示不同深度的效果。

🎓 本章总结

• 决策树结构:根节点、内部节点、叶节点,通过二分法递归划分
• 信息熵:度量数据不确定性,熵越大越混乱,熵越小越纯净
• 信息增益:划分前后熵的差值,选择最大化信息增益的特征进行划分
• 基尼指数:另一种纯度度量,sklearn默认使用,计算比熵更简单
• 剪枝方法:通过max_leaf_nodes或max_depth控制树的复杂度,避免过拟合
• 实践建议:使用交叉验证选择最优超参数,在训练精度和泛化能力之间平衡