在前面我们学习了KNN是一种基本的分类和回归方法。今天我们继续来学习另一个也能进行分类和回归的方法——决策树(Decision Tree)。那么对此,决策树到底是如何做出决策的呢?请接下来往下看——
思维导图(内容概览)
衡量标准
对于一个统计学习方法,我们需要从模型+决策+算法逐步入手。但是在认识模型之前,特征的选取又是显得特别重要,在决策树法中,存在一些比较重要的概念,即选取特征的标准。
-
评估离散程度常用的有方差、熵、基尼指数
- 方差:适用于连续随机变量,数值有实际意义。
- 熵:适用于离散随机变量,数值没有实际意义。
- 基尼指数:适用于离散随机变量,数值没有实际意义。
-
熵:用于表示随机变量的不确定(混乱)程度,记作
H ( X ) = − ∑ i = 1 n p i log p i H(X) = -\sum_{i=1}^n p_i \log p_i H(X)=−i=1∑npilogpi -
条件熵:在一直随机变量X的条件下,随机变量Y的不确定性(混乱程度)记作
H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X) = \sum_{i=1}^np_iH(Y|X=x_i) H(Y∣X)=i=1∑npiH(Y∣X=xi) -
信息增益:在得知特征X的信息而使得类Y的信息的不确定性减少程度,记作
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D, A) = H(D) - H(D|A) g(D,A)=H(D)−H(D∣A) -
信息增益比:
-
信息增益的缺陷:偏向于选择取值较多的特征。
-
概念:对于A特征的信息增益比,就是信息增益与训练数据集关于特征A的熵之比,记作
g r ( D , A ) = g ( D , A ) H A ( D ) g_r(D, A) = \frac{g(D, A)}{H_A(D)} gr(D,A)=HA(D)g(D,A)
-
-
基尼指数(K为类别数量,Pk为属于k类的概率)定义为:
G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p) = \sum_{k=1}^Kp_k(1-p_k) = 1 - \sum_{k=1}^Kp^2_k Gini(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2 -
在特征A的条件下,集合D的基尼指数定义为
G i n i ( D , A ) = ∣ D 1 ∣ D G i n i ( D 1 ) + D 2 D G i n i ( D 2 ) Gini(D, A) = \frac{|D_1|}{D}Gini(D_1) + \frac{D_2}{D}Gini(D_2) Gini(D,A)=D∣D1∣Gini(D1)+DD2Gini(D2)
决策树模型
定义:分类决策树模型是一种描述对实例进行分类的树形结构。决策树由节点和有向边组成,结点有两种类型:内部结点和叶结点。内部结点表示一个特征或属性,叶结点表示一个类。用决策树分类,从根结点开始,对实例的某一个特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归下去,直至到达叶结点。最后将所有实例进行分类。
决策树模型示意图:
损失函数和剪枝(Pruning)策略
在决策模型中,会存在一个很重要的步骤,那就是剪枝,剪枝能决定最后的决策树的样子。
当遇到一系列的连续值,这是该怎么办?此时需要将连续值进行离散化,也即是需要选取连续值的分界点。
- 剪枝的原因:决策树的过拟合风险过大时,每个叶子节点就分成了一个数据,结果不太如意。
- 剪枝策略:预剪枝,后剪枝。
-
- 预剪枝:边建立决策树边进行剪枝的操作(更加实用),比如在选择若干个特征进行先构造决策树。限制深度,叶子节点个数、叶子样本点数、信息增益量等;
- 后剪枝:边建立完决策树后进行剪枝操作。通过一定的衡量标准,叶子节点越多,损失越大。
DT模型是以极小化决策树的整体损失函数或代价函数,可定义如下:
C α ( T ) = C ( T ) + α ∗ ∣ T ( l e a f ) ∣ C_\alpha(T) = C(T) + \alpha * |T_(leaf)| Cα(T)=C(T)+α∗∣T(leaf)∣
- 前半部分表示对训练数据的拟合程度。
- 后半部分表现模型复杂程度。
- 用于对树规模的惩罚程度,取值为0是表示只考虑模型与训练数据的拟合程度,不考虑模型复杂度,取值正无穷时则刚好相反。
决策树的生成算法
-
如何切分特征
-
- 根节点的选择应该用哪一个特征?该如何切分?
- 根节点的目标是通过一种衡量标准,来计算通过不同特征进行分支选择后的分类的情况,找出最好的那个作为根节点,以此类推。
-
类别:每一种算法不同,衡量标准也不相同。
-
-
**ID3算法:信息增益 **
-
C4.5:信息增益率(解决了ID3的问题,考虑自身的熵)
-
CART:使用GINI系数作为衡量标准
-
GINI系数:
G i n i ( p ) = ∑ k = 1 k p k ( 1 − p k ) =
-