机器学习:决策树

相关定义

信息

信息量

Information(x)=log1p(x)=logp(x)\mathrm{Information}(x) = \log \dfrac{1}{p(x)} = -\log p(x)

p(x)p(x)表示某一事件XX其子情况xx发生的概率。p(x)p(x)越大,信息量越小。

信息熵

Entropy(X)=xXp(x)logp(x)\mathrm{Entropy}(X) = -\sum_{x∈X} p(x) ⋅ \log p(x)

XX指某一事件,xx遍历了其所有子情况,p(x)p(x)指某一子情况发生的概率。该值表达了事件XX的不确定性,熵越大,不确定性越大

信息熵亦是度量样本纯度地指标,该值越小,样本纯度越高,即样本中尽可能属于同一类别。

交叉熵:CrossEntropy(p,q)=xp(x)log1q(x)\mathrm{CrossEntropy}(p, q) = \sum\limits_{x} p(x) ⋅ \log \dfrac{1}{q(x)}

该式用于度量两个概率分布间的差异性信息。

条件熵

Entropy(YX)=Entropy(Y  X)=xXp(x)Entropy(Y  X=x)=xXp(x)yYp(y  x)logp(y  x)\mathrm{Entropy}(Y ⇐ X) = \mathrm{Entropy}(Y {\ \bold\vert\ } X) \begin{array}{l} \\ \\ = \sum\limits_{x∈X} p(x) ⋅ \mathrm{Entropy}(Y {\ \bold\vert\ } X=x) \\ = -\sum\limits_{x∈X} p(x) \sum\limits_{y∈Y} p(y {\ \bold\vert\ } x) ⋅ \log p(y {\ \bold\vert\ } x) \end{array}

已知事件XX的情况下求事件YY的不确定性。

信息增益

增益值

Gain(D,a)=Entropy(D)Entropy(D  a)=Entropy(D)v=1a.VDvDEntropy(Dv)\mathrm{Gain}(D, a) \begin{array}{l} \\ \\ = \mathrm{Entropy}(D) - \mathrm{Entropy}(D {\ \bold\vert\ } a) \\ = \mathrm{Entropy}(D) - \sum\limits_{v=1}^{a.V} \dfrac{|D^v|}{|D|} \mathrm{Entropy}(D^v) \end{array}

信息增益越大,即使用该属性进行划分时,对纯度的提升越大。信息增益准则对可取值数目较多的属性有所偏好。

增益率

GainRatio(D,a)=Gain(D,a)IV(a)\mathrm{GainRatio}(D, a) = \dfrac{\mathrm{Gain}(D, a)}{\mathrm{IV}(a)}

IV(a)=v=1a.VDvDlogDvDIV(a) = -\sum\limits_{v=1}^{a.V} \dfrac{|D^v|}{|D|} \log \dfrac{|D^v|}{|D|}

增益率准则对可取值数目较少的属性有所偏好。

Example

编号 色泽 根蒂 敲声 纹理 脐部 触感 好瓜
1 青绿 蜷缩 浊响 清晰 凹陷 硬滑
2 乌黑 蜷缩 沉闷 清晰 凹陷 硬滑
3 乌黑 蜷缩 浊响 清晰 凹陷 硬滑
4 青绿 蜷缩 沉闷 清晰 凹陷 硬滑
5 浅白 蜷缩 浊响 清晰 凹陷 硬滑
6 青绿 稍蜷 浊响 清晰 稍凹 软粘
7 乌黑 稍蜷 浊响 稍糊 稍凹 软粘
8 乌黑 稍蜷 浊响 清晰 稍凹 硬滑
9 乌黑 稍蜷 沉闷 稍糊 稍凹 硬滑
10 青绿 硬挺 清脆 清晰 平坦 软粘
11 浅白 硬挺 清脆 模糊 平坦 硬滑
12 浅白 蜷缩 浊响 模糊 平坦 软粘
13 青绿 稍蜷 浊响 稍糊 凹陷 硬滑
14 浅白 稍蜷 沉闷 稍糊 凹陷 硬滑
15 乌黑 稍蜷 浊响 清晰 稍凹 软粘
16 浅白 蜷缩 浊响 模糊 平坦 硬滑
17 青绿 蜷缩 沉闷 稍糊 稍凹 硬滑
好瓜 坏瓜
8 9

计算Gain(D,色泽)\mathrm{Gain}(D, 色泽)

色泽 数量 好瓜 坏瓜
青绿 6 3 3
乌黑 6 4 2
浅白 5 1 4

Gain(D,色泽)=Entropy(D)v=13DvDEntropy(Dv)=0.998(617×1+617×0.918517×0.722)=0.109\begin{array}{l} \mathrm{Gain}(D, 色泽) \\\\ \\\\ \\\\ \end{array} \begin{array}{l} = \mathrm{Entropy}(D) - \sum\limits_{v=1}^{3} \dfrac{|D^v|}{|D|} \mathrm{Entropy}(D^v) \\\\ = 0.998 - \left( \dfrac{6}{17} × 1 + \dfrac{6}{17} × 0.918 \dfrac{5}{17} × 0.722 \right) \\\\ = 0.109 \end{array}

基尼

基尼值

Gini(D)=k=1nkkpkpk=1k=1npk2\mathrm{Gini}(D) = \sum_{k=1}^{n} \sum_{k'≠k} p_kp_{k'} = 1 - \sum_{k=1}^{n} {p_k}^2

基尼值反映了从数据集中随机抽取两个样本,其类别标记不一致的概率(不纯性的度量)。基尼值越小,数据集纯度越高。

基尼指数

GiniIndex(D,a)=v=1a.VDvDGini(Dv)\mathrm{GiniIndex}(D, a) = \sum_{v=1}^{a.V} \dfrac{|D^{v}|}{|D|} \mathrm{Gini}(D^v)

选择基尼指数最小的属性作为最优划分属性。

Eaxmple

Day Outlook Temperature Humidity Wind Decision
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
14 Rain Mild High Strong No

计算GiniIndex(Outlook)\mathrm{GiniIndex}(Outlook)

Outlook Number Yes No
Sunny 5 2 3
Overcast 4 4 0
Rain 5 3 2

GiniIndex(Outlook)=514Gini(Outlook=Sunny)+414Gini(Outlook=OverCast)+514Gini(Outlook=Rain)=12350.343\begin{array}{l} \mathrm{GiniIndex}(Outlook) = \\ \\\\ \\\\ \\\\ \\\\ \end{array} \begin{array}{l} \dfrac{5}{14}\mathrm{Gini}(Outlook=Sunny) + \\\\ \dfrac{4}{14}\mathrm{Gini}(Outlook=OverCast) + \\\\ \dfrac{5}{14}\mathrm{Gini}(Outlook=Rain) \\\\ = \dfrac{12}{35} ≈ 0.343 \end{array}

算法

ID3

每次划分选取信息增益最高的属性为划分标准。

C4.5

先从候选属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

CART

优先选择基尼指数小的属性。

剪枝

避免过拟合的主要手段