目录
前言
暑假打算吃透一本书叫《机器学习》,大家也亲切的叫它西瓜书,看完决策树这部分想做做总结,虽然几年前对决策树的知识就有点印象,但是我发现现在又有了很多新的收获。
一、基本流程
决策树(decision tree)是一类常见的机器学习算法,它是基于树结构来进行决策的。
——“这是好瓜吗?”
——“它的颜色是青绿色的、根蒂是蜷缩的、敲声是......,所以结论是:这是个好瓜”。
以上,为了给好瓜坏瓜分类,我们要回答不同瓜的不同属性,来帮助我们判断。
图1. 这是一棵决策树
叶子结点就对应我们的决策结果,其它的根节点和内部节点就对应于一个属性测试。决策树学习的目的就是为了产生一棵泛化能力强,即处理未见事例能力强的决策树。
二、划分选择
决策树学习的关键就是如何选择最优划分属性,也就是找到上面图中为什么要选择“色泽”属性作为根节点的理由,以及在接下来的划分中,为什么要选择该划分属性的理由。
1、信息增益
著名的ID3决策树学习算法就是以信息增益为准则来选择划分属性,下面这个图(不是西瓜的例子了,是我之前整理的,关于得病与否的例子)在14个样本中,yes=9个,no=5个,此时信息熵=-(9/14*log(9/14)+5/14*log(5/14))=0.940286,值得注意的是这里的对数是以2为底,下面随机选择一个属性比如年龄作为划分依据,分成<30,31~40,>40这三组,这三组中yes和no各占不同的数目,计算方式跟上面一样,得到0.97095,0,0.81这三个信息熵,然后成权重后相加得到0.57856,这跟没划分之前的信息熵相差0.361726,这就是信息增益的量。
对其它的属性我们也可以做同样的计算,把得到最大的信息增益的作为最优划分属性,这就是ID3算法选择划分属性的准则。
2、增益率
实际上,信息增益准则对可取值数目较多的属性有所偏好,为了减少这种偏好可能带来的不利影响,C4.5决策树算法不直接使用信息