这是我机器学习的第一篇文章,权当学习笔记了。如果能对你有所帮助,那就不甚荣幸了。
统计方法中,主要有2大类方法:回归、分类。其中,决策树属于分类方法的一种。当然了,更多分类方法以后会谈到。接下来,我将主要从以下几个方面来谈谈我对决策树的理解:
1. 什么是决策树
2. 决策树构建的基本流程
3. 选择最优划分属性
4. 更深入的探究
曾经我们为了分类而编写的程序是按我们自己人工找出来的规则,编写if-else这样的语句来进行判断。这样的问题是,费时费力,不灵活,而且由于人自身的认识有限,很难穷尽所有规则。而决策树的提出,在一定程度上,把我们从无尽的规则提取出解放了出来。我们只需要“喂”给计算机:训练集和属性集,加上我们即将学到的决策树算法,计算机就能自动归纳出分类的规则。
一、什么是决策树
1. 构成:一棵决策树包含一个根节点、若干个内部节点和若干个叶节点;节点间由有向边连接。
2. 本质:从训练集中归纳出一组分类规则。
3. 核心问题:决策树的生长(模型的局部选择);决策树的修剪(模型的全局选择)。
初学时,重点应在生长部分。修剪是为了提高运行速度、降低模型的复杂度。
修剪枝的作用如下图1-1所示:随着模型越来越复杂(也就说树越来越深),在训练集中的错误率越来越低。但是将这样的模型用于测试集时(作用于新样本时),一开始效果越来越好,但当模型复杂度达到一定程度后,效果反而变差了。这也就是机器学习中经常需要考虑的过拟合问题。
其他机器学习算法,针对过拟合,我们会采用正则化来解决。针对决策树,我们通过剪枝来解决过拟合。
二、决策树构建的基本流程
决策树伪代码:
决策树的生成是运用了递归,在递归式里有3个停止条件。
其中最关键的是,“划分最优属性”这一步。接下来就具体介绍怎样来划分最优属性。
三、选择最优划分属性
进行划分选择的方法不同,最后对应的决策树算法不同。
ID3:以信息增益为划分准则
C4.5:以增益率为划分准则
CART:以基尼指数为划分准则
1、信息增益
先介绍信息熵,计算信息增益时需要。
四、更深入的探究
1、剪枝
2、带缺失值变量的处理方法
软件实现:R语言、SPSS、modeler、python等都可以实现。
这节先把决策树最关键的原理介绍出来。实现的话,作为机器学习最基本的一种算法,大部分软件都有直接实现的功能。具体的操作、区别和联系,需要进一步的归纳总结出来。
由于文章中的公式,是以图片的形式展现的。现在提供所有图片部分的PDF,如有需要,可以前往网址下载。
若GitHub网速太差,可以用网盘下载。链接: https://pan.baidu.com/s/1pLduapl 密码: nrwh
注:虽然我们希望机器来帮我们全自动的实现所有判断,但实现的情况是,目前大部分的监督学习,只能识别它见过的样本(训练集出现过的)。所有对于经常出现新样本的情景,传统机器学习能力有限。如:在传统安全行业,对不良网站的识别是依靠谁的不良样本集更丰富来竞争的。你肯定会担心那么新的不良网站出现怎么办,其实也不用太担心,像现在阿里云安全的“道哥”就提出了“弹性安全网络”这样的新措施。
参考文献:
[1] 机器学习 周志华 北京 : 清华大学出版社 ,2016
[2] 统计学习方法 李航 北京 : 清华大学出版社 ,2012