信息论基础
信息熵
信息熵是度量样本集合纯度最常用的一种指标。假定当前样本集合 D 中第 k 类样本所占比例为
p
k
(
k
=
1
,
2
,
…
,
∣
ν
∣
)
p_k(k=1,2,\ldots,|\nu|)
pk(k=1,2,…,∣ν∣),则 D 的信息熵定义为
E
n
t
(
D
)
=
−
∑
k
=
1
∣
ν
∣
p
k
log
2
p
k
Ent(D)=-\sum_{k=1}^{|\nu|} {p_k\log_2{p_k}}
Ent(D)=−k=1∑∣ν∣pklog2pk
E n t ( D ) Ent(D) Ent(D)的值越小,则 D 的纯度越高。 E n t ( D ) Ent(D) Ent(D)的最小值为 0 ,最大值为 log 3 ∣ ν ∣ \log_3{|\nu|} log3∣ν∣.
联合熵
联合熵是一集变量之间不确定性的衡量手段.
两个变量 X 和 Y 的联合信息熵定义为
其中 x 和 y 是 X 和 Y 的特定值,相应地,p(x,y) 是这些值一起出现的联合概率.
对于两个以上的变量,该式的一般形式为:
条件熵
X给定条件下Y的条件分布的熵对X的数学期望,在机器学习中为选定某个特征后的熵,公式如下:
一个特征对应着多个类别Y,因此在此的多个分类即为X的取值x。
信息增益
在决策树算法中,信息增益被定义为待分类的集合的熵和选定某个特征的条件熵之差,其公式如下
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=1∑V∣D∣∣Dv∣Ent(Dv)
一般而言,信息增益越大说明使用属性 a 来进行划分所获得的“纯度提升”越大。
基尼指数
基尼指数反应了从数据集 D 中随机抽取两个样本,其类别标记不一致的概率。
数据记得纯度可以用基尼值来衡量:
G
i
n
i
(
D
)
=
∑
k
=
1
∣
ν
∣
∑
k
′
≠
k
p
k
p
k
′
=
1
−
∑
k
=
1
∣
ν
∣
p
k
2
Gini(D)=\sum_{k=1}^{|\nu|} \sum_{k\prime\neq k}{p_kp_k\prime}=1-\sum_{k=1}^{|\nu|}{p_k^2}
Gini(D)=k=1∑∣ν∣k′̸=k∑pkpk′=1−k=1∑∣ν∣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)}
Giniindex(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
决策树的不同分类算法
ID3算法
ID3算法是决策树的一种,它是基于奥卡姆剃刀原理的,即用尽量用较少的东西做更多的事。全称为迭代二叉树3代。这个算法的基础就是奥卡姆剃刀原理,越是小型的决策树越优于大的决策树。在信息论中,期望信息越小,那么信息增益就越大,从而纯度就越高。ID3算法的核心思想就是以信息增益来度量属性的选择,选择分裂后信息增益最大的属性进行分裂。该算法采用自顶向下的贪婪搜索遍历可能的决策空间。
ID3算法以信息增益为准则进行决策树的划分属性选择。
其本质就是在不停地在当前未被选择的特征中寻找最重要的特征作为样本空间划分的依据。当信息增益达不到阙值或没有可用的样本时,决策树的递归过程也就结束了。
ID3算法有以下几个缺点:
-1个属性取值越多,则此属性的信息增益率越大,越有可能被ID3选为当前分类属性。然而取值较多的属性并不一定最优。(例如一个属性的每个子节点都只有1个样本,此时信息增益率达到最大,但是用这样的属性却没有任何意义)
-ID3只能处理离散型属性
具体应用场景参考:分类算法之决策树ID3详解
C4.5算法
针对ID3算法的不足,Quinlan又提出了C4.5,C4.5算法采用信息增益率来取代信息增益作为当前最优决策属性的度量标准。
具体应用场景参考:C4.5(weka又称为J48)算法原理详解
CART分类树
不同于前两种算法预测结果为分类结果,CART的预测结果为概率值。并且改进了前两种算法中的一个缺点:使用信息增益或信息增益比时,可选值多的特征往往有更高的信息增益。所以在CART树中,不再采用信息增益或信息增益比,而是在做回归时采用平方误差最小化准则,在做分类时采用基尼指数最小化准则。
回归树原理
回归树与分类树的最大不同在于,分类树处理的都是离散变量,而回归树需要处理连续变量。处理连续变量需要面对以下核心问题:如何选择划分点?
如何选择划分点?最简单的策略是二分法
与离散属性不同,若当前节点划分属性为连续属性,该属性还可作为其后代节点的划分属性。
决策树防止过拟合手段
剪枝是决策树学习算法对付“过拟合”的主要手段。决策树剪枝的基本策略有“预剪枝”和“后剪枝”。
预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
那么如何判断决策树泛化性能是否提升呢?可以采用之前学习的性能评估方法(如:留出法、交叉验证法、自助法),然后去度量它(可以采用:错误率与精度、查准率、查全率与F1、ROC与AUC和代价敏感错误率与代价曲线)。
模型评估
常见的模型评估方法有:
错误率与精度
查准率、查全率与F1
ROC与AUC
代价敏感错误率与代价曲线
具体见上一篇博客:https://blog.youkuaiyun.com/weixin_44769201/article/details/90242383