吃瓜任务3

决策树算法原理

从逻辑角度,一堆if-else语句的组合
从几何角度,根据某种和准则划分特征空间
最终目的:将样本越分越纯

将样本类别标记 y y y视作随机变量,各个类别在样本集合 D D D中的占比 p k ( k = 1 , 2 , … , ∣ y ∣ ) p_k(k=1,2,\dots,|y|) pk(k=1,2,,y)视作各个类别取值的概率,则样本集合 D D D(随机变量 y y y)的信息熵(底数b取2)为:
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k Ent(D)=-\sum_{k=1}^{|y|} p_k\log_{2}{p_k} Ent(D)=k=1ypklog2pk
此时的信息熵所代表的不确定性可以转换理解为集合内样本的纯度。

信息增益:在已知属性(特征) a a a的取值后 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=1VDDvEnt(Dv)

ID3决策树: 以信息增益为准则来选择划分属性的决策树
a ∗ = arg ⁡ max ⁡ a ∈ A G a i n ( D , a ) a_*=\arg\max_{a\in A}Gain(D,a) a=argaAmaxGain(D,a)

C4.5决策树:
信息增益准则对可能取值数目较多的属性有所偏好,为了减少这种偏好可能带来的不利影响,C4.5决策树选择使用“增益率”代替“信息增益”,增益率定义为:
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 ∣ log ⁡ 2 ∣ D v ∣ ∣ D ∣ IV(a)=-\sum_{v=1}^{V} \frac{|D^v|}{|D|} \log_{2}{\frac{|D^v|}{|D|}} IV(a)=v=1VDDvlog2DDv
称为属性 a a a的固有值。

但是,增益率对可能取值数目较少的属性有所偏好。

因此,C4.5决策树并未完全使用增益率代替信息增益,而是采用一种启发式的方法:先选出信息增益高于平均水平的属性,然后再从中选择增益率最高的。

CART决策树:

基尼值:从样本集合 D D D中随机抽取两个样本,其类别标记不一致的概率。
G i n i ( D ) = ∑ k = 1 ∣ y ∣ p k ( 1 − p k ) = 1 − ∑ k = 1 ∣ y ∣ p k 2 \begin{aligned} Gini(D)&=\sum_{k=1}^{|y|} p_k(1-p_k)\\ &=1-\sum_{k=1}^{|y|}p_k^2 \end{aligned} Gini(D)=k=1ypk(1pk)=1k=1ypk2

属性 a a 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=1VDDvGini(Dv)

CART决策树选择基尼系数最小的属性作为最优划分属性。
a ∗ = arg ⁡ min ⁡ a ∈ A G i n i _ i n d e x ( D , a ) a_*=\arg\min_{a\in A}Gini\_index(D,a) a=argaAminGini_index(D,a)

CART决策树的构造算法:

  • 首先对每个属性 a a a的每个可能取值 v v v,将数据集 D D D分为 a = v a=v a=v a ≠ v a≠v a=v两部分来计算基尼指数;
  • 然后选择基尼指数最小的属性及其对应取值作为最优划分属性和最优划分点;
  • 最后重复以上步骤,直至满足停止条件。

参考文献:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值