基于信息增益的决策树构建过程
题目描述
决策树是一种经典的机器学习算法,常用于分类和回归任务。本题要求详细解释如何通过信息增益这一指标构建分类决策树,包括如何选择最优划分特征、计算信息熵与条件熵、递归生成子树的过程。
1. 决策树的基本思想
决策树通过一系列规则对数据进行划分,目标是使每个子集的样本尽可能属于同一类别。信息增益是ID3算法中用于特征选择的准则,其核心是熵的减少——选择能使数据不确定性下降最多的特征进行划分。
2. 关键概念:信息熵与条件熵
(1) 信息熵(Entropy)
信息熵衡量数据集的混乱程度。对于分类问题,若数据集 \(D\) 有 \(K\) 个类别,第 \(k\) 类样本占比为 \(p_k\),则熵定义为:
\[H(D) = -\sum_{k=1}^{K} p_k \log_2 p_k \]
- 熵越小,数据纯度越高(例如所有样本属于同一类别时 \(H(D)=0\))。
(2) 条件熵(Conditional Entropy)
若按特征 \(A\) 的取值将 \(D\) 划分为 \(V\) 个子集 \(D_1, D_2, ..., D_V\),则条件熵表示在已知特征 \(A\) 的条件下数据集的不确定性:
\[H(D|A) = \sum_{v=1}^{V} \frac{|D_v|}{|D|} H(D_v) \]
其中 \(|D_v|\) 是子集 \(D_v\) 的样本数。
3. 信息增益的计算
信息增益是熵与条件熵的差值,反映特征 \(A\) 对不确定性的减少程度:
\[Gain(D, A) = H(D) - H(D|A) \]
- 选择特征:在每一步划分时,计算所有特征的信息增益,选择增益最大的特征作为当前节点的划分标准。
4. 递归构建决策树的步骤
以分类任务为例,设数据集 \(D\) 包含特征集 \(A = \{A_1, A_2, ..., A_m\}\) 和类别标签 \(C\)。
步骤1:判断是否终止递归
- 若 \(D\) 中所有样本属于同一类别,则将当前节点标记为叶节点,类别为该类别。
- 若特征集 \(A\) 为空,或所有样本在剩余特征上取值相同,则将当前节点标记为叶节点,类别为 \(D\) 中样本数最多的类。
步骤2:选择最优划分特征
- 对每个特征 \(A_i\),计算信息增益 \(Gain(D, A_i)\)。
- 选择增益最大的特征 \(A_*\) 作为划分特征。
步骤3:按特征取值划分数据
- 根据 \(A_*\) 的每个取值 \(a_v\) 生成分支,对应子集 \(D_v = \{x \in D \mid A_*(x)=a_v\}\)。
- 若某个子集 \(D_v\) 为空,则创建叶节点,类别为 \(D\) 中样本数最多的类。
步骤4:递归生成子树
- 对每个非空子集 \(D_v\),以 \(D_v\) 为新的数据集,\(A \setminus \{A_*\}\) 为新的特征集,重复步骤1-3。
5. 具体计算示例
假设数据集 \(D\) 如下(天气特征为 Outlook,类别为 Play Tennis):
| Outlook | Temperature | Humidity | Play Tennis |
|---|---|---|---|
| Sunny | Hot | High | No |
| Sunny | Hot | High | No |
| Overcast | Hot | High | Yes |
| Rainy | Mild | High | Yes |
| Rainy | Cool | Normal | Yes |
| Rainy | Cool | Normal | No |
| Overcast | Cool | Normal | Yes |
| Sunny | Mild | High | No |
| Sunny | Cool | Normal | Yes |
| Rainy | Mild | Normal | Yes |
| Sunny | Mild | Normal | Yes |
| Overcast | Mild | High | Yes |
| Overcast | Hot | Normal | Yes |
| Rainy | Mild | High | No |
步骤1:计算初始熵 \(H(D)\)
- 类别分布:Yes(9个),No(5个)
- \(H(D) = -\frac{9}{14} \log_2 \frac{9}{14} - \frac{5}{14} \log_2 \frac{5}{14} \approx 0.940\)
步骤2:计算各特征的信息增益
以特征 Outlook 为例:
- 取值:Sunny(5个)、Overcast(4个)、Rainy(5个)
- 子集熵:
- \(H(D_{\text{Sunny}}) = -\frac{2}{5}\log_2 \frac{2}{5} - \frac{3}{5}\log_2 \frac{3}{5} \approx 0.971\)
- \(H(D_{\text{Overcast}}) = 0\)(全为Yes)
- \(H(D_{\text{Rainy}}) = -\frac{3}{5}\log_2 \frac{3}{5} - \frac{2}{5}\log_2 \frac{2}{5} \approx 0.971\)
- 条件熵:
\[ H(D|Outlook) = \frac{5}{14} \times 0.971 + \frac{4}{14} \times 0 + \frac{5}{14} \times 0.971 \approx 0.693 \]
- 信息增益:
\[ Gain(D, Outlook) = 0.940 - 0.693 = 0.247 \]
同理计算其他特征(如 Temperature、Humidity)的增益,选择增益最大的特征。
步骤3:递归构建
- 第一层选择 Outlook(增益最大),生成分支:Sunny、Overcast、Rainy。
- 对 Sunny 分支继续选择剩余特征中增益最大的划分,直到满足终止条件。
6. 信息增益的局限性
- 对取值较多的特征有偏好(例如ID编号可能导致增益极大但无意义)。
- 改进方案:使用增益率(C4.5算法)或基尼系数(CART算法)。
通过以上步骤,决策树能够逐步划分数据,最终形成一棵可解释的分类树。