信息熵:
自信息:p(x)为取x的概率。
I ( X ) = − l o g b p ( x ) I(X)=-log_bp(x) I(X)=−logbp(x)
信息熵(公式1):自信息的期望,度量随机变量X的不确定性,信息熵越大,越不确定。假设当前样本集合D中第k类样本所占比例为pk,则D的信息熵定义为2
H ( X ) = E [ I ( X ) ] = − ∑ x p ( x ) l o g b p ( x ) − − − 1 E n t ( D ) = − ∑ x ∣ y ∣ p k l o g 2 p k − − − 2 H(X)=E[I(X)]=-\sum_{x}{p(x)log_bp(x)}---1 \\ Ent(D)=-\sum_{x}^{|y|}{p_klog_2p_k}---2 H(X)=E[I(X)]=−∑xp(x)logbp(x)−−−1Ent(D)=−∑x∣y∣pklog2pk−−−2
当X某个取值的概率为1,信息熵最小,因为最确定;当X的各个取值的概率均等时,信息熵最大,因为最不确定。
信息增益:总体的信息熵减去条件熵。在已知属性a的取值后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)
ID3决策树
以信息增益为准则来选择划分属性的决策树。选择最大的信息增益,不停地迭代。
a ∗ = a g r m a x G a i n ( D , a ) a_*=agrmax Gain(D,a) a∗=agrmaxGain(D,a)
C4.5决策树
信息增益准则对可取值数目较多的属性有所偏好,有时候不具有代表性。C4.5选择使用增益率代替信息增益。先算信息增益,再算增益率。但是增益率可能对可取值数目较少的属性有所偏好
CART决策树
基尼值:从样本集合D中随机抽取两个样本,其类别标记不一致的概率。基尼值越小,碰到异类的概率就越小,纯度就越高。对应前面的信息熵
G i n i ( D ) = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D)=1-\sum{}_{k=1}^{|y|}{p_k^2} Gini(D)=1−∑k=1∣y∣pk2
基尼指数:对应前面的条件熵
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=1V∣D∣∣Dv∣Gini(Dv)
CART决策树:选择基尼指数最小的属性最为最优划分属性,是二叉树。
a ∗ = a g r m i n G i n i i n d e x ( D , a ) a_*=agrmin Gini_index(D,a) a∗=agrminGiniindex(D,a)
- 首先对每个属性a的每个可能取值v,划分成a=v,a不等于v两部分的基尼指数
- 选择基尼指数最小的属性极其对应的取值作为最优化分属性和划分点
- 重复以上步骤,直到满足条件
关键:如何选择最优划分属性
- 信息增益
- 增益率
- 基尼系数
剪枝处理是对付过拟合的主要手段。主要分为预剪枝,和后剪枝。
连续值处理
缺失值处理
参考:周志华机器学习,datawhale吃瓜教程