机器学习吃瓜(西瓜、南瓜书)笔记 task03-第四章决策树

4 决策树

4.1 算法原理

逻辑角度:一堆if-else的组合(一堆判断 核心在于判断条件)
几何角度:特征空间,找划分点
最终目的:将样本约分越“”——信息熵度量纯度
在这里插入图片描述

4.2 ID3决策树

自信息 I ( X ) = − l o g 2 P ( x ) I(X)=-log_{2}P(x) I(X)=log2P(x)
信息熵-自信息的期望,概率*自信息值
以离散型为例: H ( X ) = E [ I ( X ) ] = − ∑ x P l o g 2 P ( x ) H(X)=E[I(X)]=-\sum_{x}^{}Plog_{2}P(x) H(X)=E[I(X)]=xPlog2P(x)

信息熵什么时候最大,什么时候最小?
当有个概率值为1时,其他值的概率都为0,信息熵为0,此时最小(最确定)。
当所有取值概率都均等时,信息熵最大(最不确定)。

可以从两个角度证明最大值最小是

  1. 仅考虑 ∑ k = 1 n x k = 1 \sum_{k=1}^{n} x_{k}=1 k=1nxk=1时,对 f ( x 1 , … , x n ) f\left(x_{1}, \ldots, x_{n}\right) f(x1,,xn)求最大值等同于在约束条件下求函数最小值(拉格朗日乘子法)
    min ⁡ ∑ k = 1 n x k log ⁡ 2 x k  s.t.  ∑ k = 1 n x k = 1 \begin{aligned} \min & \sum_{k=1}^{n} x_{k} \log _{2} x_{k} \\ \text { s.t. } & \sum_{k=1}^{n} x_{k}=1 \end{aligned} min s.t. k=1nxklog2xkk=1nxk=1
    2.仅考虑 0 ≤ x k ≤ 1 0\le x_{k} \le 1 0xk1的话, f ( x 1 , … , x n ) f\left(x_{1}, \ldots, x_{n}\right) f(x1,,xn)可以看成是 n n n个互不相关的一元函数的和,即
    f ( x 1 , … , x n ) = ∑ k = 1 n g ( x k ) f\left(x_{1}, \ldots, x_{n}\right) = \sum_{k=1}^{n} g(x_{k}) f(x1,,xn)=k=1ng(xk)
    求一阶导二阶导。

条件熵( Y的信息熵关于概率 X分布 的期望):在已知 X 后 Y 的不确定性
H ( Y ∣ X ) = ∑ x p ( x ) H ( Y ∣ X = x ) H(Y \mid X)=\sum_{x} p(x) H(Y \mid X=x) H(YX)=xp(x)H(YX=x)
在这里插入图片描述
在这里插入图片描述

4.3 C4.5决策树

在ID3决策树上的改进,ID3存在一个问题:当属性太多,划分的子集太小,算出的信息增益没有代表性,例如“编号”这个属性,每个样本都不一样,不能这样划分,会导致过拟合。
类似于归一化思想,除以一个值,当子集合数量越多,除以的数越大。用增益率代替信息增益。

缺点:对数目多的情况好,但是如果数目太少会导致分母也很少,言下之意对子集数目少的时候结果不准确。

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

4.4 CART决策树 (Classification and Regression Tree)

纯度除了信息熵以外还能用什么去衡量?
基尼数Gini
基尼数定义为,从数据集中随机抽取两个样本,样本类别不一致的概率。因此Gini值越小越纯。
Gini ⁡ ( D ) = ∑ k = 1 ∣ Y ∣ ∑ k ′ ≠ k p k p k ′ = ∑ k = 1 ∣ Y ∣ p k ( 1 − p k ) = 1 − ∑ k = 1 ∣ Y ∣ p k 2 \begin{aligned} \operatorname{Gini}(D) &=\sum_{k=1}^{|\mathcal{Y}|} \sum_{k^{\prime} \neq k} p_{k} p_{k^{\prime}} \\ &=\sum_{k=1}^{|\mathcal{Y}|} p_{k}\left(1-p_{k}\right) \\ &=1-\sum_{k=1}^{|\mathcal{Y}|} p_{k}^{2} \end{aligned} Gini(D)=k=1Yk=kpkpk=k=1Ypk(1pk)=1k=1Ypk2
基尼指数(类比信息熵和条件熵)
 Gini index  ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Gini ⁡ ( D v ) ) \text { Gini index }(D, a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Gini}\left(D^{v}\right))  Gini index (D,a)=v=1VDDvGini(Dv))
CART决策树:选择基尼指数最小的属性作为最优划分属性
a ∗ = arg ⁡ min ⁡ a ∈ A  Gini index  ( D , a ) a_{*}=\underset{a \in A}{\arg \min } \text { Gini index }(D, a) a=aAargmin Gini index (D,a)

具体划分点?
在这里插入图片描述
感谢datawhale提供的学习交流平台和资源,学习视频可以参照https://www.bilibili.com/video/BV1Mh411e7VU

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值