分类树(信息熵与基尼指数)
一,决策树的直观理解
二,分类树
2.1 信息熵
信息熵是用来衡量信息不确定性的指标,不确定性是一个事件出现不同结果的可能性。(越小越好)
计算如下:
其中:P(X=i)为随机变量x取值为i的概率
举个例子,如下:
可以看出,第一种的不确定性更高(信息熵较大)
2.2 条件信息熵
条件熵:在给定随机变量Y的条件下,随机变量X的不确定性
信息增益:信息熵 - 条件熵,代表在一个条件下,信息不确定性的减少程度
- 绿点:16个
- 十字:14个
- 总计:30个
通过某条件分隔父节点,可以看出靠下的子节点不确定性更小。
信息增益 = 父节点熵(0.996)- 子节点加权熵(0.615) = 0.381
示例
假设高尔夫球场拥有不同天气时某个客户的打球历史记录,如下图:(我们无法单纯的通过Yes和No的历史频度判断客户明天会不会打球,因此需要借助天气信息减少不确定性)
首先是构建根节点,我们先看下Play Golf的熵:
在14条历史数据中,打球的概率为5/14=0.64,不打球的概率为9/14=0.36,熵值为0.94.
接下来我们寻找晴朗与否,湿度,风力和温度四种状况与是否打球相关性最高的一个,进行决策树的构建。
晴朗程度Outlook的条件熵与信息增益:
使用Outlook的条件熵:0.63*0.971 + 0.29*0 + 0.36*0.971 = 0.69
信息增益:0.940 - 0.69 = 0.25(最佳分隔特征)
温度Temp的条件熵与信息增益:
使用Temp的条件熵:0.29*1 + 0.43*0.918 + 0.29*0.811 = 0.92
信息增益:0.94 - 0.92 = 0.02
同理我们将其他的条件一并列出
选择信息增益最大的进行划分(使用Outlook进行划分),则分割结果如下:
再对Sunny,Overcast,Rainy分别重复上述操作(但可以看出Overcast结果均为Yes,则可以直接出其结果)
对Sunny节点进行划分
Wind条件的信息增益最大,则选择该条件作为子节点
对Rain节点进行划分
经过计算Humidity条件的信息增益最高,则选其为子节点
最终构建决策树结果如下:
使用决策树进行预测
2.3 基尼指数(Gini不纯度)
基尼指数表示在样本集合中一个随机选中的样本被分错的概率。注意
Gini指数越小表示被分错的概率越小,也就是说样本纯度越高(当集合中的所有样本均为一类时,基尼指数为0)
计算方法:
其中,pk表示选中的样本属于第k个类别的概率。
示例
根据天气状况预测是否打球,首先计算根节点基尼指数:
CART树是二叉树,对于一个有多个取值(超过2个)的特征,需要计算以每个取值作为划分点,对样本D划分之后子集的纯度Gini(D, Ai),然后从所有的可能划分的Gini(D, Ai)中找出Gini指数最小的划分,这个划分的划分点,便是使用特征A对样本集合D进行划分的最佳划分点。
Outlook是最优的分割特征,接下来计算rainy,overcast和sunny的基尼指数,选择最小的作为分割节点即可。