前言
暑假打算吃透一本书叫《机器学习》,大家也亲切的叫它西瓜书,看完决策树这部分想做做总结,虽然几年前对决策树的知识就有点印象,但是我发现现在又有了很多新的收获。
一、基本流程
二、划分选择
三、剪枝处理
四、连续与缺失值
五、多变量决策树
六、房价数据集的决策树算法python实现
一、基本流程
决策树(decision tree)是一类常见的机器学习算法,它是基于树结构来进行决策的。
——“这是好瓜吗?”
——“它的颜色是青绿色的、根蒂是蜷缩的、敲声是......,所以结论是:这是个好瓜”。
以上,为了给好瓜坏瓜分类,我们要回答不同瓜的不同属性,来帮助我们判断。
图1. 这是一棵决策树
叶子结点就对应我们的决策结果,其它的根节点和内部节点就对应于一个属性测试。决策树学习的目的就是为了产生一棵泛化能力强,即处理未见事例能力强的决策树。
二、划分选择
决策树学习的关键就是如何选择最优划分属性,也就是找到上面图中为什么要选择“色泽”属性作为根节点的理由,以及在接下来的划分中,为什么要选择该划分属性的理由。
1、信息增益
著名的ID3决策树学习算法就是以信息增益为准则来选择划分属性,下面这个图(不是西瓜的例子了,是我之前整理的,关于得病与否的例子)在14个样本中,yes=9个,no=5个,此时信息熵=-(9/14*log(9/14)+