自学西瓜书2:决策树
决策树是传统机器学习中很重要的基本算法之一。决策树所需要的训练样本少,构建思路简单,训练所得的模型也可以通过graphviz和matplotlib等工具进行可视化操作,因此我们可以非常直观的对其进行解释。
1. 简介
说到底,决策树还不是树,是树就是if-else语句。(bushi) 决策树是很典型的判别模型,常用的决策树有三种,分别是ID3树,C4.5树,CART树。三种类型的树的目标函数分别为互信息(Mutual Information),互信息率(Mutual Information Ratio)和Gini系数(Gini Coefficient)。其中互信息在决策树中也常被成为信息增益,其实后者是前者的无偏估计,二者在决策树算法中是等效的。
2. ID3算法
2.1 信息熵(Information Entropy)
话不多说直接上定义式
2.2 条件熵(Conditional Entropy)
条件熵可以类比条件概率来理解,其定义式为:
2.3 KL散度与信息增益(Kullback-Leibler Divergence & Information Gain)
KL散度又叫相对熵,是度量两个概率分布之间距离的指标。设有两个概率分布P(X),
Q(X), 则KL散度的定义式为
2.4 ID3决策树
ID3决策树的叶节点就是根据信息增益来确定的,每一层对所有未被选择所有属性计算信息增益,选出最大的一个作为该层的叶节点。以西瓜数据集2.0为例
显然,开始时分为正例和反例,其中正例
思考:若是多分类问题且类别较多,ID3决策树模型的效果将会大幅削弱,因为此时信息增益将趋近于0
3. C4.5算法
3.1 简介
由于ID3算法对于连续值的处理无能为力,我们需要另一种改进的算法来实现对连续值的分类。C4.5作为ID3的改进算法,引入信息增益率作为其标准,结合信息增益本身来选择分裂子节点。
### 3.2 信息增益率
凡是加了个“率”字的名词,就是在其原来的基础上从变化量变为变化量除以原来的值,那么信息增益率的式子也很容易得出
4. CART算法
4.1 简介
CART算法全称是Classification and Regression Tree。顾名思义,这种算法既可以做分类也可以做回归。无论是在sklearn.tree的 DecisionTreeClassifier/DecisionTreeRegressor,还是在sklearn.ensemble中的RandomForestClassifier/RandomForestRegressor都是用CART树作为默认参数输入(当然也可以手动修改为ID3或C4.5)。
4.2 Gini指数
Gini指数本来是国际上通用的、用以衡量一个国家或地区居民收入差距的常用指标,但也可以作为机器学习决策树的目标函数,其定义式如下:
4.3 CART树的回归问题
CART树在解决分类问题时选用Gini指数作为节点分裂标准,而在解决回归问题的时候则会选择传统的均方误差作为分类函数,不过回归树模型与一般的回归模型有所不同。
我们知道树的最后会生成若干个叶节点作为结果,那么类比线性回归就可以得到CART目标函数
对于左边,回归树可以给出预测值
后记
这篇笔记真的憋了很久,写的时候才发现之前学的很多细节性的东西都忘光了,如果文中有错误欢迎提出指正,另外复习真的很重要呀!!
参考文献
[1]周志华.机器学习[M].清华大学出版社:北京,2016.
[2]Jeremy Liang.机器学习算法笔记--------建立西瓜数据集[EB/OL].https://blog.csdn.net/qq_35654046/article/details/84783638 2018-12-04.
[3]wuliytTaotao.[EB/OL]. https://www.cnblogs.com/wuliytTaotao/p/10724118.html.2019-4-1在这里插入图片描述