机器学习基础:决策树

目录

1. Zero-R

2. One-R

3. 从1-R到决策树

4. ID-3决策树

5. 决策树的分支条件——不纯度

6. 决策树的特征选择——信息增益

6.1 信息增益的缺陷

7. 决策树的特征选择——信息增益比

8. 决策树对于样本的预测

8.1 对于重复样本的预测

8.2 对于新样本的预测

9. 决策树的深度 & 性能

10. 关于ID-3决策树的讨论


1. Zero-R

0-R是一种常用的baseline

是通过对样本集合进行统计,然后选用出现频率最高的样本类作为对所有测试集样本预测的结果。


例如一个数据集包含三类样本,标签分别是:

A 1000
B 500
C 500

那么这个时候最多类是A,占比是50% ,因此对于任何测试样本,这个0-R模型的预测结果都是 A,而这个模型的正确率也就是50%


0-R模型不涉及任何特征的使用:

只有majority\: \: class对于预测样本类别有用。

2. One-R

1-R

只使用一组特征来构建模型并预测标签。

实际流程

对于每个特征:

  • 针对每个特征中所有不同的取值,计算这个取值的弱势标签数m
  • 将所有取值的弱势标签数求和,除以所有的样本数n,得到\frac{m}{n}以这个特征构建0-R时候的错误概率

比对每个特征的结果并选出拥有最高分类概率的特征作为标准,在测试集中进行样本预测。


例子:

outlook这个特征进行构建1-R 模型:

机器学习基础:决策树_第1张图片

sunny中对于noyes的数量分别是2,3;所以对于sunny来说,把no标签看做是优势标签,而 yes标签被认为是弱势标签,因此sunny的弱势样本数是2个。

同理,outlook中的overcast的弱势样本数是no0个;rainy的弱势样本是no2个。所以整个 outlook特征对于标签的错误率是\frac{4}{14}

机器学习基础:决策树_第2张图片

再计算Temp特征对于标签的错误率是\frac{2+2+1}{14}=\frac{5}{14}

机器学习基础:决策树_第3张图片

综上:Outlook规则的表现优于Temp。我们选Outlook作为1-R的特征。


再来看一个有更多特征的例子:

机器学习基础:决策树_第4张图片

机器学习基础:决策树_第5张图片

根据上面的结果,我们的1-R模型会基于outlook或者humidity来构建。

我们把1-R称为决策树桩(decision stump),因为通过1-R可以选出决策树的根节点(根特征)。

3. 从1-R到决策树

如果首先根据上面1-R决定一个树桩outlook作为决策树的根,构建决策树:

机器学习基础:决策树_第6张图片

如何判断一个节点是否需要扩展子节点:

对于o^{'}\: cast这个叶子节点来说,已经不存在错误样本no=0;因此它不再需要通过扩展其他特征来降低错误样本数。而对于sunnyno=2)和windyno=2)则需要根据当前的特征集再选出额外的特征来使得错误率减小。


举个例子:

假设将X_{Outlook}= sunny的所有样本这个当做一个新的数据集,那么这个数据集包含了5个样本,从剩下的所有特征\{Temp, Humidity, Windy\}中选出一个特征来构造1-R模型,使得当前情况下能够有最小的错误率。

基于X_{Outlook}= sunny5个样本中采用了humidity特征构建了1-R,从而使得以humidity为根节点的子树的错误率降低到0

机器学习基础:决策树_第7张图片

同理,在X_{Outlook}=rainy的所有样本中,选用windy特征来构建1-R,错误率也降低到0

机器学习基础:决策树_第8张图片

当树的所有的叶子结点是没有错误样本的,也就是说这棵树是一棵完美的决策树了。

机器学习基础:决策树_第9张图片

Total\: \: error =\frac{0}{14}

4. ID-3决策树

构建一棵决策树的步骤是递归的,从根节点开始分支,每个叶子节点都会有一定量的样本。

  • 如果这个叶子的样本中没有错误样本,那么我们就不再对这个叶子进行分支;
  • 如果叶子节点的样本中有错误样本,那么我们就把这个叶子节点中的所有样本当做一个子数据集,并从未使用过的特征中选择一个新的特征基于子数据集构建一棵子树。

ID-3算法如下:

机器学习基础:决策树_第10张图片

Note: 实际上叶子节点的错误率为0是很苛刻的条件,因此我们通常会使用一个阈值来决定是否要继续分支。而且我们通常不采用1-R的方式作为决策树分支的标准。

5. 决策树的分支条件——不纯度

纯度

对于采用1-R作为分支标准的决策树,只要叶子节点的错误率非零,我们认为它是 “不纯” 的,那么对于其他分支标准如何衡量一个叶子节点 “不纯” 的程度呢?

不纯度

为了更好的决定一个叶子节点是否需要继续分支,我们引入不纯度来决定。当叶子节点的不纯度超过了某一个阈值我们认为这个叶子节点是不可忍受的,必须进行分支来降低错误率。

Entropy

熵是用来衡量“不可预测性”的一个指标,结果的不确定性越大,熵就越大。

给定一个概率分布,预测一个事件所需的信息(以比特为单位)就是该分布的熵或信息值(information value)

公式定义:H(x)=-\sum _{i=1}^{n}P(i)log_{2}P(i) ,log_{2}0=0

例子:假设对于某个节点,使用entropy计算不纯度:

机器学习基础:决策树_第11张图片

机器学习基础:决策树_第12张图片

我们更喜欢熵值较低的叶子(更纯净)!

假设如果现在的分支标准是> 0.45那么Node1就不需要再分支了。

6. 决策树的特征选择——信息增益

当决策树根据entropy衡量出结点不纯度高于设定的阈值,这时候决策树要进行分支,那么如何选择合适的特征进行分支呢?

在基于1-R策略构成的决策树中,分支选用的新特征的标准就是:选用的特征让当前叶子结点分支后的错误率最小。

除了这种选择特征的方式,我们还可以用信息增益和信息增益比来选择特征。

信息增益(Information Gain,IG

特征A的信息增益是下面两部分的差值: 

  • 在选用特征A进行当前结点\alpha分支之前,这个叶子结点的entropy
  • 选用A特征完成分支之后,\alpha产生的所有分支结点\alpha_1,...\alpha_nentropy的加权平均值(mean information)

机器学习基础:决策树_第13张图片

这两部分的差值叫做信息增益,它反映的是选用A对于原本叶子结点\alpha不纯度的消除程度。我们肯定希望选择信息增益最大的特征当做当前\alpha结点的新特征。

注意

信息增益的计算是在每个结点进行分支的时候,对于当前结点的所有备选特征进行IG的计算,而不是在一开始就计算好。也就是说,当我在考虑\alpha结点的分支问题的时候,就只是对\alpha可选的所有特征计算他们对于\alpha的信息增益,与\alpha之外的任何结点没有关系

平均信息(mean information)

对于结点\alpha,选择特征m进行分支,分支后的平均信息量根据下面公式计算:

Mean\: \: Info(x_1,...,x_m)=\sum _{j=1}^{m}P(x_j)H(x_j)

  • H(x_j)是分支产生的某个新结点x_j上的信息量entropy
  • 每个新结点也可以看成是特征m中的某一种取值。
  • P(x_j)是这个新结点中样本的数量N_{x_j}占分支之前的结点N的比例:\frac{N_{x_j}}{N}

例子:

​下图中,新结点\{x_j|x_j\in m\}分别是\{sunny, overcast, rainy\}。分支后每个新结点的entropy分别是下图中计算的H(x_j=ranny,overcast, sunny)P(x_j)一目了然。

机器学习基础:决策树_第14张图片

机器学习基础:决策树_第15张图片

分支之前的结点的 entropy =-(\frac{5}{14}log_2\frac{5}{14} + \frac{9}{14}log_2\frac{9}{14})=0.9

因此在当前结点选择outlook特征进行分支的信息增益比是:0.94-0.694=0.247

通过这种方式,可以计算出在当前结点所有可用特征的信息增益,然后选出IG最大的特征作为当前结点的分支特征。

然后我们再计算出temperaturehumiditywindyIG

机器学习基础:决策树_第16张图片

机器学习基础:决策树_第17张图片

机器学习基础:决策树_第18张图片

综上,outlookIG最大,因此在当前结点,我们选择outlook作为新的特征来构建分支。

6.1 信息增益的缺陷

如果拿id作为特征来计算信息增益,我们可以得到什么结果呢?

机器学习基础:决策树_第19张图片

机器学习基础:决策树_第20张图片

信息增益竟然是0.94,之所以这样是因为id的个数和样本个数一样多,因此以id特征进行分支,分出来的叶子节点数量也会和样本数一样多,那也就根本不存在劣势样本所以每个结点的纯度都是 100%

这也体现出信息增益作为特征筛选标准的一个问题,那就是对于类似于id的这种特征(特征内的取值非常多)是不起作用的。而且容易导致整个决策树模型过拟合。

为了解决这个问题,我们采用更加合理的信息增益比(gain ration)作为分支特征筛选的标准。

7. 决策树的特征选择——信息增益比

通过对分支信息增益(Gain Ratio)的规范化减小 “分支过多” 造成的偏差GR 的公式如下:

GR(R_A|R)=\frac{IG(R_A|R)}{SI(R_A|R)}=\frac{IG(R_A|R)}{H(R_A)}=\frac{H(R)-\sum_{j=1}^m P(x_j)H(x_j)}{-\sum_{j=1}^mP(x_j)log_2P(x_j)}

R_A是进行分支的新特征;R是分支之前的原本节点。

不鼓励选择具有许多均匀分布值的特征

机器学习基础:决策树_第21张图片

属性值的熵,不是相对于目标类而言的。也叫内在价值。

机器学习基础:决策树_第22张图片

机器学习基础:决策树_第23张图片


信息增益的优势

  • 一方面信息增益比可以延续信息增益的效果对继续分支的特征进行筛选。
  • 另一方面可以避免一个特征中的取值情况过多而导致的信息增益偏差。

8. 决策树对于样本的预测

假设目前已经形成了一棵不错的决策树:

机器学习基础:决策树_第24张图片

8.1 对于重复样本的预测

对于一个曾经见过的特征组合,我们可以根据决策树的分支策略对测试的样本进行预测:

机器学习基础:决策树_第25张图片

8.2 对于新样本的预测

如果一个样本不能够符合分支的情况,应该怎么进行决策呢?例如Test=\{rainy, hot, normal, False\}

这时候决策树会先匹配rainy,进入右边的分支。

然后根据Test中发现windyfalse所以他会给出yes的答案(因为yeswindy=false中是优势标签)

机器学习基础:决策树_第26张图片

9. 决策树的深度 & 性能

相比于深层的决策树,我们更希望能够得到较浅的决策树;因为使用的特征过多代表决策树的过拟合风险太大。

机器学习基础:决策树_第27张图片

10. 关于ID-3决策树的讨论

ID-3是一种归纳学习算法。

ID-3在假设空间(hypothesis space)中搜索符合训练示例的假设。

假设空间是可能决策树的集合。

ID-3在这个假设空间中执行从简单到复杂的爬山搜索。

empty tree开始,然后在寻找正确分类训练数据的决策树时逐步考虑更详细的假设。

不使用回溯。

我们倾向于构造更浅的树:

  • 倾向于符合数据的最短假设。
  • 符合数据的短假设不太可能是巧合,符合数据的长假设可能是巧合。

ID-3的优点

  • 在基本监督学习中受到高度评价。
  • 训练和分类速度快。
  • 高度可解释性。

ID-3 的缺点

  • 容易过拟合。
  • 容易受不相关特征的影响。
  • 偏爱nomial类型的特征。

你可能感兴趣的:(机器学习基础,决策树,机器学习,学习)