信息增益率

    信息熵,条件熵,信息增益参考博文:https://blog.csdn.net/u010916338/article/details/91432832

  如下表所示:满足什么情况才去玩高尔夫 ?

DayTemperatrueOutlookHumidityWindyPlayGolf?
07-05hotsunnyhighfalseno
07-06hotsunnyhightrueno
07-07hotovercasthighfalseyes
07-09coolrainnormalfalseyes
07-10coolovercastnormaltrueyes
07-12mildsunnyhighfalseno
07-14coolsunnynormalfalseyes
07-15mildrainnormalfalseyes
07-20mildsunnynormaltrueyes
07-21mildovercasthightrueyes
07-22hotovercastnormalfalseyes
07-23mildsunnyhightrueno
07-26coolsunnynormaltrueno
07-30mildsunnyhighfalseyes

 一,计算整体信息熵

H(Y)=-\frac{5}{14}\log _2(\frac{5}{14})-\frac{9}{14}\log _2(\frac{9}{14})=0.9403

二, 计算Outlook天气特征的条件熵,以及性别特征的信息增益

任意过来一条天气数据,预估去打高尔夫还是不去打高尔夫,设为随机变量Y。

任意过来一条天气数据,天气(Outlook)是晴天(sunny),阴天(overcast)或者下雨(rain),设为随机变量X。

任意过来一条天气数据是晴天,设为事件x1;

任意过来一条天气数据是阴天,设为事件x2;

任意过来一条天气数据是下雨,设为事件x3;

随机变量X的概率空间为: 

\bg_white \begin{bmatrix} X\\ p(x) \end{bmatrix}=\begin{bmatrix} x_1&x_2&x_3\\ \frac{8}{14}&\frac{4}{14} &\frac{2}{14}\end{bmatrix}

p(x_1)=\frac{8}{14}\qquad p(x_2)=\frac{4}{14}\qquad p(x_3)=\frac{2}{14}

(1)天气晴条件熵:

H(Y|X=x_1)=-\frac{3}{8}\log_2( \frac{3}{8})-\frac{5}{8}\log_2( \frac{5}{8})=0.9544

(2)天气阴条件熵:

H(Y|X=x_2)=-\frac{4}{4}\log_2( \frac{4}{4})-\frac{0}{4}\log_2( \frac{0}{4})=0

(3)天气下雨条件熵:

H(Y|X=x_3)=-\frac{2}{2}\log_2( \frac{2}{2})-\frac{0}{2}\log_2( \frac{0}{2})=0

(4)天气条件熵:

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

                =p(x_1)H(Y|X=x_1)+p(x_2)H(Y|X=x_2)+p(x_3)H(Y|X=x_3)

                =\frac{8}{14}\times 0.9544+\frac{4}{14}\times0+\frac{2}{14}\times0=0.5454

(5)天气信息增益:

 g(Y,X)=H(Y)-H(Y|X)=0.3949

三,信息增益率

ID3算法使用信息增益,在C4.5算法中引入了信息增益率(gainratio)。为什么呢?

接着上面例子,假如使用第一列Day作为特征(注:任意过来一条天气数据,预估去打高尔夫还是不去打高尔夫,设为随机变量Y;设意过来一条数据的日期设为随机变量X,取值为07-05,07-06···07-30)。日期的信息增益为H(Y|X)=0,日期的信息增益率为g(Y,X)=0.9403这特征可真是够“好”的!显然这种特征对于样本的分隔没有任何意义。类似的情况还有人们的身份证号、信用卡号、学号等等特征。 

那么导致这样的偏差的原因是什么呢?从上面的例子应该能够感受出来,原因就是该特征可以选取的值过多。解决办法自然就想到了如何能够对节点分支过多的情况进行惩罚,这样就引入了公式来表示属性A的内部信息。

3.1  属性A的内部信息(Intrinsic Information of an Attribute)

IntI(Y,X)=-\sum_{i}^{ }\frac{\left | X_i \right |}{\left | Y \right |}log(\frac{\left | X_i \right |}{\left | Y \right |})

注:X表示某个属性A的随机变量,\left | X_i \right |表示属性A的第i个分类的个数,\left | Y \right |表示样本的总个数,\frac{\left | X_i \right |}{\left | Y \right |}表示属性A的第i个分类占样本总个数的比例。

3.2  信息增益率

g(Y|X)=\frac{g(Y,X)}{IntI(Y,X)}

注:就是在信息增益上又除了一个量,这个量能够起到惩罚的作用,类别越多这个量越大

(注:这里为了便于区分,重新命名了随机变量) 

(1)Day日期的内部信息

IntI(D,Day)=14\cdot (-\frac{1}{14}\cdot log_2(\frac{1}{14}))=3.8074

(2)Outlook天气的内部信息

IntI(D,Outlook)=-\frac{8}{14} log_2(\frac{8}{14})-\frac{4}{14}log_2(\frac{4}{14})-\frac{2}{14}log_2(\frac{2}{14})=1.3788

(3)Day日期信息的增益率

g(D|Day)=\frac{g(D,Day)}{IntI(D,Day)}=\frac{0.9403}{3.8074}=0.247

(4)Outlook天气的信息增益率

g(D|Outlook)=\frac{g(D,Outlook)}{IntI(D,Outlook)}=\frac{0.3949}{1.3788}=0.2864

显然利用信息增益率可以屏蔽掉类似日期或者是id类别过多的问题!!!

 

 

  • 16
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在sklearn中,计算信息增益率的方法是通过使用决策树模型中的feature_importances_属性来获取特征的重要性程度。在代码中,可以使用clf.feature_importances_来查看特征的重要性程度。\[1\]然而,sklearn库并没有直接提供计算信息增益率的函数。要计算信息增益率,可以使用其他方法,比如先计算信息增益,然后再除以分支度。分支度是一个惩罚项,它考虑了父节点分出的子节点的数量。\[2\]另外,对于连续性变量,可以使用二分法来进行切分,然后计算加权信息熵和信息增益,最终得到增益比例。\[3\] #### 引用[.reference_title] - *1* [机器学习--决策树(sklearn)](https://blog.csdn.net/weixin_50918736/article/details/125616968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [机器学习——有监督——决策树(分类树)相关原理及sklearn实现(信息熵、基尼系数、信息增益、特征重要...](https://blog.csdn.net/huangguohui_123/article/details/105522595)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值