机器学习西瓜书和南瓜书第4章学习笔记

一、决策树算法原理

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

二、ID3决策树

        将样本类别标记y视作随机变量,各个类别在样本集合D中的占比p_{k}(k=1,2,...,|Y|)视作各个类别取值的概率,则样本集合D的信息熵(底数取2)为

Ent(D)=-\sum_{k=1}^{|Y|}p_{k}log_{2}p_{k}

此信息熵可理解为集合内样本的纯度。

        条件熵是Y的信息熵关于概率分布X的期望,表示已知XY的不确定性,公式为

H(Y|X)=\sum_{x}^{}p(x)H(Y|X=x)

从单个属性a来看,假设其可能取值为\left \{ a^{1} ,a^{2},...,a^{V} \right \}的集合,D^{v}表示a取值为a^{v}\epsilon \left \{ a^{1} ,a^{2},...,a^{V} \right \}的样本集合,则已知a取值,样本集合D^{v}的条件熵为

\sum_{v=1}^{V}\frac{|D^{v}|}{|D|}Ent(D^{v})

        信息增益为已知属性a取值后y不确定性减少的量,即纯度的提升,公式为

Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^{v}|}{|D|}Ent(D^{v})

        ID3决策树为以信息增益为准则选择划分的决策树。划分标准a^{*}的公式为

a^{*}=argmax_{a\epsilon A}Gain(D,a)

三、C4.5决策树

        信息增益可能对取值数目较多的属性有所偏好,为减轻偏好,C4.5决策树用增益率代替信息增益。增益率为

Gain-ratio(D,a)=\frac{Gain(D,a)}{IV(a)}

其中

IV(a)=-\sum_{v=1}^{V}\frac{|D^{v}|}{|D|}log_{2}\frac{|D^{v}|}{|D|}

称为属性a的固有值。通常V越大,IV(a)越大。但增益率可能对取值数目较少的属性有所偏好,因此C4.5决策树先选信息增益高的,再从中选增益率高的。

四、CART决策树

        基尼值为从样本集合D中随机抽两个样本,其类别标记不一样的概率。基尼值越小,纯度越高。基尼值公式为

Gini(D)=\sum_{k=1}^{|Y|}\sum_{k^{'}\neq k}^{}p_{k}p_{k^{'}}=\sum_{k=1}^{|Y|}p_{k}(1-p_{k})=1- \sum_{k=1}^{|Y|}p_{k} ^{2}

属性a的基尼指数为

Gini-index(D,a)\sum_{v=1}^{V}\frac{|D^{v}|}{|D|} Gini(D^{v})

CART决策树选择基尼指数最小的属性为最优划分属性,即

a^{*}=argmax_{a\epsilon A}Gini-index(D,a)

        首先,对每个属性a的可能取值v将数据集D划分为a=va\neq v两部分计算基尼指数。然后选择基尼指数最小的属性为最优划分属性。重复以上过程直至满足条件。

五、剪枝处理

        剪枝是用于解决决策树过拟合的方法。常用的剪枝方法有预剪枝和后剪枝。预剪枝是将数据集以某属性划分前后计算验证集精度判断是否划分,若划分后精度下降则不划分。后剪枝是先生成决策树,计算某属性替换为叶子节点前后验证集精度,若替换后精度上升则替换。

六、连续与缺失值、多变量决策树

1.连续值处理

        对连续值的处理采用二分法。给定样本集D和连续属性a,假设aD中取值从大到小排序为\left \{ a^{1},a^{2},...,a^{n} \right \},基于划分点tD划分为D_{t}^{-}(包含a取值不大于t的样本)和D_{t}^{+}(包含a取值大于t的样本)。对于相邻属性a^{i}a^{i+1}t取两者之间的任何数对结果无影响,因此取\frac{a^{i}+a^{i+1}}{2}作划分点候选值。

2.缺失值划分

        给定训练集D和属性a,令\widetilde{D}D中无缺失值的样本子集。若a\epsilon \left \{ a^{1},a^{2},...,a^{V} \right \},则用\widetilde{D}^{v}表示\widetilde{D}aa^{v}的样本子集,\widetilde{D}_{k}表示\widetilde{D}中第k类样本子集。对每个样本x赋予权重w_{x},定义

\rho =\frac{\sum_{x\in \widetilde{D}}^{} w_{x}}{\sum_{x\in D}^{} w_{x}}

\widetilde{p}_{k}=\frac{\sum_{x\in \widetilde{D}_{k}}^{} w_{x}}{\sum_{x\in \widetilde{D}}^{} w_{x}}(1\leqslant k\leqslant |Y|)

\widetilde{r}_{v}=\frac{\sum_{x\in \widetilde{D}^{v}}^{} w_{x}}{\sum_{x\in \widetilde{D}}^{} w_{x}}(1 \leqslant v\leqslant V)

则信息增益变为

Gain(D,a)=\rho \times (Ent(\widetilde{D})-\sum_{v=1}^{V}\widetilde{r}_{v} Ent(\widetilde{ D}^{v}))

其中Ent(\widetilde{D})=-\sum_{k=1}^{|Y|}\widetilde{p}_{k}log_{2}\widetilde{p}_{k}。以此进行划分。

3.多变量决策树

        在决策树中对每个属性都进行决策大大提高计算量,而多变量决策树以多个属性为一个整体,使计算量得以降低。

        本文公式以及各种决策树参考自周志华《机器学习》和https://www.bilibili.com/video/BV1Mh411e7VU?p=7&vd_source=bf244e193683634d74ec4694f6a67393并结合了自己理解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可爱的希格玛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值