ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Datawhale 吃瓜教程 Task03打卡

2022-06-23 20:33:00  阅读:174  来源: 互联网

标签:frac log sum Datawhale 信息熵 Ent 打卡 取值 Task03


ID3决策树

自信息

\[I(x)=-log_bp(x) \]

可以先把自信息理解成跟米,公顷一样的一种单位,不必在这纠结

信息熵

度量随机变量 \(X\)的不确定性,信息熵越大越不确定

\[H(x) = E[I(X)] = -\sum_xp(x)log_bp(x)\tag{以离散型为例} \]

在计算时约定 如果 p(x) = 0 ,则 \(p(x)log_bp(x)=0\)

假设随机变量\(X\)有三个可能的取值\(a,b,c\),那么三者满足\(p(a)+p(b)+p(c)=1\)

现在请根据直观感受回答下面的两个问题:

1: 啥时候信息熵最小呢?(信息熵越大越不确定)

当然是 \(a,b,c\) 中某个的取值为1的时候,比如说如果 \(p(a)=1\),那么 \(X\) 的取值恒等于 a ,也不用猜了,相当于一个常量。常量当然是确定性的,所以这时候X的信息熵为0。

2: 那什么时候信息熵最大呢?(也就是最不确定 \(X\) 的取值的情况)

当 \(X\) 的各个取值概率均等时,信息熵最大,值为 \(lob_b|X|\) ,其中\(|X|\) 表示 \(X\) 可能取值的个数。猜哪个的概率都一样,只能瞎蒙了,这时候不确定性是最高的。

比如电视答题里面有题目让你选对错,但你完全不知道题目的相关背景,这时候选 √,× 对你来说完全一样,50%,50%。但如果这时候使用一次去除错误选项的机会,这样你就只有一个选项可以选了,并且选这个肯定对,那 \(X\)又变为常量了,信息熵重新变为0。

将样本类别标记\(y\)视作随机变量,将各个类别在样本中的占比 \(p_k(k=1,2...|\gamma|)\) 视作各个类别取值的概率,则样本集合 \(D\) 的信息熵为(对数b取2):

\[Ent(D) = - \sum_{k=1}^{|\gamma|}p_klog_2p_k \]

这里的 \(Ent(D)\) 其实就是之前的 \(H(X)\),然后书中说的\(Ent(D)\)越小,纯度越高其实就是信息熵越小,样本可能的取值越确定的意思。

西瓜数据集

以西瓜数据集为例,一颗判断是否为好瓜的决策树显然 \(|\gamma|\)为2(是好瓜,不是好瓜),在这17个样例中好瓜的个数为8,坏瓜9个。也就是正例 \(p_1=\frac{8}{17}\) ,反例 \(p_2=\frac{9}{17}\)

那么

\[\begin{split} Ent(D) &= -\sum_{k=1}^{2}p_klog2p_k \\ &= -(\frac{8}{17}log_2\frac{8}{17}+\frac{9}{17}log_2\frac{9}{17}) \\ &=0.998 \end{split} \]

条件熵

条件熵是指 \(Y\) 的信息熵关于概率分布 \(X\)的期望

\[H(Y|X) = \sum_xp(x)H(Y|X=x) \]

从单个特征 \(\alpha\) 的角度来说,假设其可能取值为 \({a^1,a^2,..a^v}\) ,\(D^v\) 表示属性$ \alpha $取值为 \(\alpha^v \in \{{a^1,a^2,..a^v}\}\)的样本集合,\(\frac{|D^v|}{|D|}\)表示占比,则在知道 α 的取值之后,\(D\) 的条件熵为:

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

信息增益

而信息增益其实就是值在某个属性的取值已知后,随机变量的不确定性减小的程度

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

假设我们知道了西瓜数据集中关于色泽的概率分布

\[Ent(D^{色泽=青绿}) = -(\frac{3}{6}log_2\frac{3}{6}+\frac{3}{6}log_2\frac{3}{6}) = 1.000 \\ Ent(D^{色泽=乌黑}) = -(\frac{4}{6}log_2\frac{4}{6}+\frac{2}{6}log_2\frac{2}{6}) = 0.918\\ Ent(D^{色泽=浅白}) = -(\frac{1}{5}log_2\frac{1}{5}+\frac{4}{5}log_2\frac{4}{5}) = 0.722 \]

那么知道了属性“色泽”的信息增益为

\[\begin{split} Gain(D,色泽) &= Ent(D) - \sum_{v=1}^3\frac{{|D^v|}}{|D|}Ent(D^v) \\ &= 0.998 - (\frac{6}{17}*1.000 + \frac{6}{17}*0.918 + \frac{5}{17}*0.722) \\ &= 0.109 \end{split} \]

结果为正,说明知道确定色泽信息之后有助于我们判断西瓜的好坏。

C4.5决策树

如果计算“编号”这一属性的信息增益,你会发现它直接等于0.998,因为每个编号对应的西瓜的情况是确定的。\(Ent(D)\) 为 0

但很显然这种提升是没有用的,信息增益会对这种能够划分特别多值,并且每个取值下数目较少的属性产生偏好,比如之前说的 “编号” 这一属性。

增益率

增益率能够减少可能取值较多的属性偏好带来的不利影响。

\[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)\)也会越大,虽然它解决了ID3的问题。但这个增益率对可能取值数目少的属性会有偏好,因为它们作为分母的\(IV(a)\)比较小。

有一种拆东墙补西墙的感觉。。。

最终方案

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

CART决策树

基尼值

从样本集合 \(D\)中随机抽取两个样本,标记不同概率。因此基尼值越小,碰到异类的概率越小,纯度越高

\[Gini(D) = \sum_{k=1}^{|\gamma|}\sum_{k'\neq{k}}p_kp_{k'} = \sum_{k=1}^{|\gamma|}p_k(1-p_k) = 1 - \sum_{k=1}^{|\gamma|}p^2_k \]

基尼指数

属性\(\alpha\)的基尼指数

\[Gini\_index(D,\alpha) = \sum_{v=1}^V\frac{|D^v|}{D}Gini(D^v) \]

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

\[a_*=\mathop{argmin}\limits_{a\in{A}} Gini\_index(D,\alpha) \]

具体划分点的选择:

  • 对每个属性a的各一个可能取值\(v\),将数据集\(D\)分为 \(a=v,a\neq v\)两部分计算基尼指数

    \[Gini\_index(D,a) = \frac{|D^{a=v}|}{D}Gini(D^v) + \frac{|D^{a\neq v}|}{D}Gini(D^{a \neq v}) \]

  • 然后选择基尼指数最小的属性以及对应取值作为最优划分属性和最优划分点

  • 重复以上两步,直至满足停止条件

标签:frac,log,sum,Datawhale,信息熵,Ent,打卡,取值,Task03
来源: https://www.cnblogs.com/AD-milk/p/16406618.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有