什么是决策树
模型:学习条件概率分布(从训练数据归纳出一组分类规则)
策略:损失函数最小化(正则化的极大似然函数)
算法: 最优决策树NP完全问题,启发式算法(基于直观或经验构造的算法)
递归的选择最优的**(有区分能力的)特征**,数据根据该特征进行分割。
递归终止条件:遇到以下三种情况中的任意一种
- 数据用完
- 特征用完
- 节点包含的样本属于同一类
怎么量化特征的区分能力
根据特征选择方式的不同决策树可以分为:
信息增益-ID3
信息增益比-C4.5
基尼指数-CART
- 信息增益
熵:用于度量随机变量不确定性
离散随机变量X的概率分布为P(X=xi)=pi,i=1,2,...,nP(X=x_i)=p_i , i= 1,2,...,nP(X=xi)=pi,i=1,2,...,n
X的熵记为H(p)H(p)H(p), 熵依赖于X的分布,而与X的取值无关
H(X)=H(p)=−∑i=1npilogpiH(X) = H(p)=- \sum_{i=1}^np_ilogp_iH(X)=H(p)=−i=1∑npilogpi
熵满足
0≤H(p)≤logn0\le H(p) \le logn0≤H(p)≤logn
当X服从均匀分布时熵最大,右边等号成立。
离散随机变量的取值越多(n越大),最大熵越大。
条件熵:已知随机变量X的条件下随机变Y的不确定性
H(Y∣X)=∑i=1npiH(Y∣X=xi)H(Y|X)= \sum_{i=1}^np_iH(Y|X=x_i)H(Y∣X)=i=1∑npiH(Y∣X=xi)
信息增益定义为:
g(D,A)=H(D)−H(D∣A)g(D,A) = H(D)-H(D|A)g(D,A)=H(D)−H(D∣A)
$ H(D)$:数据集D的熵(离散随机变量为类别)
H(D∣A)H(D|A)H(D∣A): 根据特征A对数据集D划分得到的熵
(把数据集D根据特征A的取值,分为D1,D2...D_1,D_2...D1,D2...,计算数据集DiD_iDi的熵,然后加权)
信息增益大的特征具有更强大的分类能力。
2. 信息增益比
信息增益,偏向于选择取值较多的特征
假设给数据集增加一列特征,特征为行号(即 1~N),如果按这一列行号进行划分,得到的条件熵为0,信息增益最大。
而这一列特征对于分类没有意义。
信息增益比对这一问题校正。
信息增益比定义为:
gR(D,A)=g(D,A)HA(D)g_R(D,A)=\frac{g(D, A)}{H_A(D)}gR(D,A)=HA(D)g(D,A)
HA(D)H_A(D)HA(D):数据集关于特征A的值的熵(离散随机变量是特征值A)
根据前面熵取值范围公式知,特征值多的最大熵越大。
3.基尼指数
Gini(p)=1−∑i=1npi2Gini(p) = 1-\sum_{i=1}^np_i^2Gini(p)=1−i=1∑npi2
H(p)=−∑i=1npilogpiH(p)=- \sum_{i=1}^np_ilogp_iH(p)=−i=1∑npilogpi
与熵的含义公式类似
基尼指数:用以衡量一个国家或地区居民收入差距的常用指标。
基尼系数介于0-1之间,基尼系数越大,表示不平等程度越高。
熵 越大数据集越混乱(越不纯),随机变量的不确定性越大。
剪枝
递归的划分,有时会造成分支过多。这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确。(即过拟合现象)
决策树通过剪枝的方法来降低过拟合风险。
剪枝分为预剪枝(prepruning)和后剪枝(postpruning)
剪枝方法通过最小化损失函数实现
设树T的叶子节点为∣T∣|T|∣T∣个,t是树T的叶子节点,该叶子节点有NtN_tNt个样本,Ht(T)H_t(T)Ht(T)为叶节点t上的熵。
决策树的损失函数可以表示为
Cα(T)=∑t=1TNtHt(T)+α∣T∣C_\alpha(T)=\sum_{t=1}^ TN_tH_t(T)+\alpha|T|Cα(T)=t=1∑TNtHt(T)+α∣T∣
分到同一个叶子节点的样本是根据多数投票表决得到的类别,目标是将相同的类的尽可能分到一起,数据集中越相同越纯,熵越小。
为什么要乘以NtN_tNt
第一项表示模型对训练数据的预测误差。
第二项表示模型的复杂度。
预剪枝
在决策树生成的过程中, 对每个节点在划分前进行估计,若当前节点的划分不能带来决策树性能的提升,则停止划分并将当前的节点标记为叶节点
后剪枝方法
- 先生成一棵完整的决策树
- 从叶子节点自底向上回缩到父节点,比较回缩前后两棵树的损失函数值。变小了说明应该剪。
- 递归直到不能继续
判断决策树泛化性能是否提升: 验证集 评估准确率,带正则的loss