目录
一、决策树构建法之C4.5算法
上一篇文章我们讲到ID3算法,但是在现实中,我们却很少去用ID3算法去构建决策树。这是因为ID3算法有一个很明显的缺点:它对可取值数目较多的属性有所偏好。比如说在上一篇文章中,根节点偏向了有三个值(本硕博)的属性“学历”,而不是两个值的“教学态度”。为了减小这一不利影响,科学家们想出来了另一种评判方法————信息增益率!
先来看信息增益率的数学定义:
既然是一种“率”,那么分子肯定就是信息增益啊,分母的算法为:
当a属性的取值数目增多时IV(a)也会随之增多,作为分母,刚好能够减小信息增益随a的属性取值数目的增多而增多的不利影响。这就是信息增益率的高明之处。
需要注意的是:信息增益率对可取值少的属性有偏好,所以C4.5算法并不会直接选择信息增益率最大的那一个作为划分属性,而是会先找信息增益高于平均水平的属性,再在这些属性中选择信息增益率最大的那一个属性。
让我们重新计算一下在上一篇文章中“学历”、“教学态度”、“教学水平”谁更适合做根节点。(请移步决策树(1)_计算机鬼才~的博客-CSDN博客看小编在ID3算法举的例子)
虽然结果不变,但是我们可以很明显的看出,信息增益率的差距比信息增益的差距小的多!
二、决策树构建法之CART算法
CART算法是另一种构建决策树的关键算法。它使用的是“基尼指数”来判断属性是否适合做根节点。我们先学习“基尼值”的定义
由公式可以看出,这是一个描述纯度的值,纯度越高,基尼值越小(特别纯时,基尼值为0)。同样的,基尼指数会给基尼值加上一个权重,数学公式定义如下:
CART算法会选择基尼指数最小的属性,作为最优划分属性。(我们自然是希望越纯越好,这样子一下子就能分开!)
三、剪枝策略
这么构建决策树,是不是有点太“精确”了?以至于把自身的一些特点当做所有数据都具有的一般性质。毕竟学历为硕士,教学水平分别为“高”、“中”、“低”的样本,都各只有一个,完全没有说服力啊!李老师研究生毕业,很勤快但是教学水平中等,依据这张图,无法被录取,可能就是因为这张图“过于精确”了,产生了“过拟合”的特点。
聪明的科学家们,想到了一个好方法去解决“过拟合”问题,那就是————剪枝!顾名思义,就像是环卫工人给树木修剪一样,我们要砍掉自己构建的决策树的一些分支。
剪枝分为两种方法:预剪枝以及后剪枝。
预剪枝是边构建决策树边剪枝的方法,更加实用,而后剪枝则是在构建完决策树后再进行剪枝操作。
简单的预剪枝方法有:限制深度(比如说限制为3,那么就只能用三个属性来划分)、限制叶子结点个数、限制叶子结点的样本数(不能低于多少多少个样本)。预剪枝的另一个好处是,减小了构建树的工程量,使计算更为简便!
后剪枝则是通过一定的标准,来确定这个“分支”要不要减掉。这个标准有很多种,但是后剪枝由于庞大的工程量,用的其实不如预剪枝那么多,知道有这个方法就行了。
好的,本期的机器学习算法就讲到这里啦,欲学习更多的机器学习算法,关注我,小编带你体验人工智能之乐趣!当然了,如果能给小编点个赞,那就再好不过了。