决策树算法的构建与信息增益计算
字数 1605 2025-10-27 08:13:40
决策树算法的构建与信息增益计算
题目描述
决策树是一种基于树结构的分类模型,其核心问题是如何选择最优划分属性。假设你有一组员工数据,包含年龄、学历、工作年限等特征,以及是否获得晋升的标签。需要构建决策树自动判断晋升可能性,请详细解释如何通过信息增益选择划分属性。
解题过程
1. 理解信息熵
- 定义:信息熵(Entropy)衡量数据集的混乱程度。若数据集 \(D\) 中第 \(k\) 类样本占比为 \(p_k\),则熵的计算公式为:
\[ H(D) = -\sum_{k=1}^{n} p_k \log_2 p_k \]
- 示例:假设晋升数据集有 10 个样本,其中 6 人晋升(正例),4 人未晋升(反例)。
\[ H(D) = -\left(\frac{6}{10} \log_2 \frac{6}{10} + \frac{4}{10} \log_2 \frac{4}{10}\right) \approx 0.971 \]
熵值越接近 1,数据越混乱。
2. 计算条件熵
- 目的:已知某个特征 \(A\)(如“学历”)的取值后,数据的不确定性。
- 步骤:
- 按特征 \(A\) 的取值(如“本科”“硕士”)将数据划分为子集 \(D_1, D_2, ...\)。
- 计算每个子集的熵 \(H(D_i)\)。
- 加权求和:
\[ H(D|A) = \sum_{i=1}^{v} \frac{|D_i|}{|D|} H(D_i) \]
其中 \(v\) 是特征 \(A\) 的取值个数。
3. 信息增益公式
- 定义:特征 \(A\) 带来的信息增益是熵的减少量:
\[ Gain(D, A) = H(D) - H(D|A) \]
- 选择标准:增益越大,说明用特征 \(A\) 划分后数据纯度提升越多。
4. 实例演算
假设数据如下(简化版):
| 年龄 | 学历 | 是否晋升 |
|---|---|---|
| 青年 | 本科 | 否 |
| 中年 | 硕士 | 是 |
| 青年 | 硕士 | 是 |
| 中年 | 博士 | 是 |
- 步骤 1:计算初始熵 \(H(D)\)
共 4 个样本,3 个“是”,1 个“否”:
\[ H(D) = -\left(\frac{3}{4} \log_2 \frac{3}{4} + \frac{1}{4} \log_2 \frac{1}{4}\right) \approx 0.811 \]
- 步骤 2:计算“学历”的条件熵
- 学历取值:本科(1 个样本)、硕士(2 个)、博士(1 个)。
- 子集熵值:
- 本科:1 个“否”,熵 \(H(D_1) = 0\)
- 硕士:2 个“是”,熵 \(H(D_2) = 0\)
- 博士:1 个“是”,熵 \(H(D_3) = 0\)
- 条件熵:
\[ H(D|学历) = \frac{1}{4} \times 0 + \frac{2}{4} \times 0 + \frac{1}{4} \times 0 = 0 \]
- 步骤 3:计算信息增益
\[ Gain(D, 学历) = 0.811 - 0 = 0.811 \]
- 步骤 4:比较其他特征(如“年龄”)
类似计算得 \(Gain(D, 年龄) = 0.311\)。因 \(0.811 > 0.311\),优先选择“学历”作为根节点划分特征。
5. 递归构建树
- 对每个子集重复上述过程,直到子集纯度达到阈值(如所有样本属于同一类)或无法继续划分。
关键点
- 信息增益偏好取值较多的特征(如“身份证号”),后续需用增益率(C4.5算法)修正。
- 若特征为连续值(如年龄),需先离散化(如划分为“青年/中年”)。