信息增益(ID3)
- 信息熵,可以度量样本集合纯度
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∣?pk?log2?pk?
- 熵越小,则D的纯度越高
增益率(C4.5)
基尼指数(CART)
分类和回归都可用
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_k^2(越大越不纯) Gini(p)=k=1∑K?pk?(1?pk?)=1?k=1∑K?pk2?(越大越不纯)
属性A的基尼指数:
G
i
n
i
_
i
n
d
e
x
(
D
,
a
)
=
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
G
i
n
i
(
D
v
)
Gini\_index(D,a)=\sum_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v)
Gini_index(D,a)=v=1∑V?∣D∣∣Dv∣?Gini(Dv)
选最小的
【可连续可离散,必须二叉树】
剪枝可以防止决策树过拟合,提高泛化性能
预剪枝,若当前节点的划分不能带来泛化性能提升,则停止划分并将当前结点标记为叶结点
优点:降低了过拟合风险,显著减少训练时间开销和测试时间开销
缺点:有些分支当前划分虽不能提升泛化性能,但在其基础上的后续划分却有可能导致性能显著提高,预剪枝基于贪心本质,带来了欠拟合风险
后剪枝,生成决策树后,自底向上对非叶节点考察,用单一叶结点代替整个子树
- 优点:欠拟合风险很小,泛化性能往往优于预剪枝决策树
- 缺点:训练时间开销比未剪枝决策树和预剪枝决策树大很多
连续值处理
C4.5:二分法
对连续属性a,可考察包含n-1个元素的候选划分点集合
T
a
=
{
a
i
+
a
i
+
1
2
∣
1
<
=
i
<
=
n
?
1
}
T_a=\{\frac{a_i+a_{i+1}}2|1<=i<=n-1\}
Ta?={2ai?+ai+1??∣1<=i<=n?1}
与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性
缺失值处理
噪音数据可能影响决策树,在数据带有噪声的情况下,通过剪枝可将决策树的泛化性能提高25%
多变量决策树