【决策树例题分析】在机器学习的众多算法中,决策树因其结构清晰、易于理解和解释而受到广泛欢迎。它是一种基于树形结构进行分类或回归的监督学习方法。本文将通过一个具体的例题来深入分析决策树的工作原理与应用过程。
一、问题背景
假设我们有一个数据集,用于预测一个人是否适合参加某项运动训练项目。该数据集包含以下特征:
- 年龄:分为“年轻”和“年长”
- 体重:分为“较轻”和“较重”
- 健康状况:分为“良好”和“一般”
目标变量为:是否适合参加训练(是/否)
数据如下表所示:
| 年龄 | 体重 | 健康状况 | 是否适合 |
|--------|--------|----------|----------|
| 年轻 | 较轻 | 良好 | 是 |
| 年轻 | 较重 | 良好 | 否 |
| 年轻 | 较轻 | 一般 | 否 |
| 年轻 | 较重 | 一般 | 否 |
| 年长 | 较轻 | 良好 | 否 |
| 年长 | 较重 | 良好 | 否 |
| 年长 | 较轻 | 一般 | 否 |
| 年长 | 较重 | 一般 | 否 |
二、构建决策树的过程
1. 计算信息增益
为了构建一棵最优的决策树,我们需要选择能够最大程度减少不确定性的特征作为根节点。常用的方法是使用信息增益(Information Gain)或基尼指数(Gini Index)来进行评估。
这里我们以信息增益为例进行计算。
(1)计算初始熵(Entropy)
目标变量“是否适合”的分布为:
- 是:1
- 否:7
因此,初始熵为:
$$
E_{\text{initial}} = -\left( \frac{1}{8} \log_2 \frac{1}{8} + \frac{7}{8} \log_2 \frac{7}{8} \right) \approx 0.5436
$$
(2)计算每个特征的信息增益
特征1:年龄
- 年轻:4条记录(2是,2否)
- 年长:4条记录(0是,4否)
计算年龄的信息增益:
$$
E_{\text{年轻}} = -\left( \frac{2}{4} \log_2 \frac{2}{4} + \frac{2}{4} \log_2 \frac{2}{4} \right) = 1
$$
$$
E_{\text{年长}} = -\left( \frac{0}{4} \log_2 \frac{0}{4} + \frac{4}{4} \log_2 \frac{4}{4} \right) = 0
$$
$$
\text{Gain}_{\text{年龄}} = E_{\text{initial}} - \left( \frac{4}{8} \times 1 + \frac{4}{8} \times 0 \right) = 0.5436 - 0.5 = 0.0436
$$
特征2:体重
- 较轻:4条记录(1是,3否)
- 较重:4条记录(0是,4否)
$$
E_{\text{较轻}} = -\left( \frac{1}{4} \log_2 \frac{1}{4} + \frac{3}{4} \log_2 \frac{3}{4} \right) \approx 0.8113
$$
$$
E_{\text{较重}} = 0
$$
$$
\text{Gain}_{\text{体重}} = 0.5436 - \left( \frac{4}{8} \times 0.8113 + \frac{4}{8} \times 0 \right) = 0.5436 - 0.4057 = 0.1379
$$
特征3:健康状况
- 良好:4条记录(1是,3否)
- 一般:4条记录(0是,4否)
$$
E_{\text{良好}} = 0.8113
$$
$$
E_{\text{一般}} = 0
$$
$$
\text{Gain}_{\text{健康状况}} = 0.5436 - \left( \frac{4}{8} \times 0.8113 + \frac{4}{8} \times 0 \right) = 0.1379
$$
三、选择最佳划分特征
根据以上计算结果:
- 年龄:0.0436
- 体重:0.1379
- 健康状况:0.1379
可见,体重和健康状况的信息增益相同,均高于年龄。此时可以选择任意一个作为根节点。为了简化,我们选择体重作为根节点。
四、构建子树
1. 左子树(体重:较轻)
在体重为“较轻”的样本中,目标变量为:
- 是:1
- 否:3
此时熵为:
$$
E = -\left( \frac{1}{4} \log_2 \frac{1}{4} + \frac{3}{4} \log_2 \frac{3}{4} \right) \approx 0.8113
$$
继续选择下一个最佳特征,比如健康状况。
- 健康状况为“良好”:1条记录(是)
- 健康状况为“一般”:3条记录(否)
此时熵为:
$$
E = 0
$$
因此,该分支可以终止。
2. 右子树(体重:较重)
所有样本的目标均为“否”,无需进一步划分。
五、最终决策树结构
```
体重
├─ 较轻
│├─ 健康状况
││├─ 良好 → 是
││└─ 一般 → 否
│└─ 其他情况 → 否
└─ 较重 → 否
```
六、结论
通过上述例题分析可以看出,决策树的核心在于如何选择最佳划分特征,从而最大化信息增益或最小化基尼指数。在实际应用中,还需考虑剪枝、过拟合等问题,以提高模型的泛化能力。
决策树不仅适用于分类任务,也可以用于回归问题。其简单直观的特性使其成为许多初学者进入机器学习领域的首选算法之一。