转自: https://www.zhenxiangsimple.com/2019/03/28/tech-ml-jcs/
决策树,是使用树形结构进行决策或者判定的一种方法。本文说一下,机器学习中决策树里的一些常用计算规则或数学概念。
分类方式
决策树的分类是基于样品对象的某一个属性值为标准的,如果样品有多个维度的属性,则需要确定以哪些属性作为优先分类的条件,以及如何排序分类的条件,即确定一个分类属性后如何确定后面的属性,甚至如果有的属性值不存在时该如何处理等等。
- 信息熵: E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\sum_{k=1}^{|y|}p_klog_2p_k Ent(D)=−∑k=1∣y∣pklog2pk,其中D为测试样本, p k p_k pk为测试样本中分类为k的比例, ∣ y ∣ |y| ∣y∣是样本分类总数。
- 信息增益: G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)−∑v=1V∣D∣∣Dv∣Ent(Dv),其中 a a a为测试样本对应的某一个维度的属性, D v D^v Dv为测试样本中属性 a a a的值为 v v v的样本,| D v D^v Dv|表示 D v D^v Dv对应的样本数量。
- 增益率: G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} Gain_ratio(D,a)=IV(a)Gain(D,a),其中 I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|} IV(a)=−∑v=1V∣D∣∣Dv∣log2∣D∣∣Dv∣
- 基尼系数:
G
i
n
i
(
D
,
a
)
=
1
−
∑
k
=
1
∣
y
∣
p
k
2
Gini(D,a)=1-\sum_{k=1}^{|y|}{p_k}^2
Gini(D,a)=1−∑k=1∣y∣pk2
通过计算每个属性的信息增益,选择增益最大的属性作为优先分类的属性,选择完第一个后,之后的属性维度用同样的方式继续进行计算得到次优属性。
执行分类
剪枝处理
由于生成的决策树过程容易存在过拟合,就是对测试样本的个体属性当作了所有样本的一般属性,因此需要对它进行剪枝(去掉过于细节的模型),以简化学到的决策树。决策树的剪枝,通常提前结束树的子节点生成,或者从已生成的树上剪掉一些节点或子树,从而简化生成的决策树模型。
预剪枝:对每个节点进行划分,直到当前节点不能继续增加泛化性能未知
后剪枝:先生成一个完成的决策树,然后自底向上计算,如果子树没有增加泛化性能,则使用叶子节点代替子树
连续值
如果测试样本属性为非离散,或者测量值是无规则的数据值,比如物体重量、长度等,则可以使用属性的某个中间值将属性离散化。
缺失值
如果样本在对应属性上存在缺失,则可以将当前属性等比例分配到存在的属性值中去,比如,若颜色有红色黄色两种,对应样本数量比例为8:2,则如果有当前属性缺失的样本,则将该样本设定为0.8为红色,0.2为黄色。
多变量决策树
为每个非叶子节点建立一个线性分类器,而不是仅仅作为一个划分不同方向的单个属性值。