8.18决策树
1. 决策树概述
定义:决策树是一种树模型,用于分类和回归任务。它从根节点开始,通过一系列的特征选择和分支,最终到达叶子节点,给出决策结果。
组成:
根节点:第一个选择点。
非叶子节点与分支:中间过程,表示特征选择和分支。
叶子节点:最终的决策结果。
2. 决策树的训练与测试
训练阶段:从给定的训练集构造决策树,包括选择特征和特征切分。
测试阶段:根据构造的树模型进行分类或回归任务,只需从上到下遍历树。
3. 如何切分特征(选择节点)
目标:选择能够最好地切分数据的特征作为根节点,以提高分类效果。
衡量标准:通过某种标准计算不同特征进行分支选择后的分类情况,选择最佳特征。
4. 衡量标准:熵
熵:表示随机变量不确定性的度量,公式为H(X)=- ∑ pi * logpi, i=1,2, ... , n
应用:在分类任务中,希望分支后的数据类别熵值尽可能小,表示分类后的专一性。
5. 信息增益
定义:表示特征X使得类Y的不确定性减少的程度。
计算:通过比较原始数据集的熵与根据特征分割后的数据集熵的期望值之差来计算。
6.案例:
数据集与标签说明
- 数据集包含14天的打球情况,标签为“是否出去玩”(Play),特征包括天气(Outlook)、温度(Temperature)、湿度(Humidity)、是否多云(Windy)。
- 目标是通过决策树算法,根据特征预测标签。
根节点选择方法
- 需通过信息增益(Information Gain)确定根节点(大当家),信息增益越大,特征对标签的分类效果越好。
- 计算步骤:
- 计算初始标签的熵(Entropy):基于“Play”列的分布(如5个“No”、9个“Yes”)。
- 对每个特征(如Outlook)分组后,计算子集的熵,并加权求和得到条件熵。
- 信息增益 = 初始熵 - 条件熵,选择增益最大的特征作为根节点。
具体计算示例(Outlook特征)
- 初始熵:
H(Play) = - (5/14)*log(5/14) - (9/14)*log(9/14)
。 - Outlook分三类:
- Sunny(5天):熵
A = - (3/5)*log(3/5) - (2/5)*log(2/5)
。 - Overcast(4天):全“Yes”,熵
B = 0
。 - Rainy(5天):熵
C = A
(同Sunny分布)。
- Sunny(5天):熵
- 条件熵:
H(Play|Outlook) = (5/14)*A + (4/14)*B + (5/14)*C
。 - 信息增益:
H(Play) - H(Play|Outlook)
。
- 初始熵:
决策树构建逻辑
- 根节点确定后,递归选择后续节点(二当家、三当家),每次选择剩余特征中信息增益最大的特征。
- 需注意:后续节点的信息增益需基于已选特征的条件熵计算,而非直接与初始熵比较。
讨论与澄清
- 部分同学混淆了标签列与特征列的作用,需明确熵的计算仅基于标签列(Play)。
- 强调加权求和的重要性(如Outlook的子集熵需按天数比例加权)。
- 信息增益的目标是快速降低不确定性,优先选择分类效果强的特征
大当家选择方法
- 根据四个节点划分数据,分别计算天气(sunny/overcast/rainy)条件下的信息增益值。
- 通过加权求和计算商值(熵)。
- 信息增益最大的属性(天气)被选为“大当家”。
二当家选择方法
- 在已选大当家(天气)的子节点中,穷举剩余属性(如温度)进行划分。
- 计算子节点的商值(如温度分 hot/medium/cool),若子节点纯度为 1(全 yes/no)则停止划分。
- 加权计算整体商值(需乘两次权重:子节点内比例和父节点全局比例)。
- 信息增益公式:X - Y(X为大当家商值,Y为二当家候选商值),最大值者当选。
课堂练习
- 题目:基于“是否浮出水面生存”和“是否有脚蹼”两个特征构建决策树。
- 计算步骤:
- 原始商值:0.971(以 2 为底对数)。
- “有脚蹼”作为根节点时商值:0.8,信息增益 0.171。
- “不浮出水面”作为根节点时商值:0.551,信息增益 0.42(更大,当选大当家)。
注意事项
- 加权次数随层级增加(三当家需乘三次权重)。
- 对数底数通常为 2(因频繁出现二分之一概率)。
7.总结:
今天详细介绍了决策树的基本概念、组成部分、训练与测试过程、特征选择的方法以及如何使用熵和信息增益来衡量特征的重要性。通过实例演示了如何构造决策树,并提供了课堂练习以加深的理解。