查询网站流量的网址,网站建设主要营销内客,html制作网页代码模板,网页游戏排行榜前十不用氪金西瓜数据集D如下:
编号色泽根蒂敲声纹理脐部触感好瓜1青绿蜷缩浊响清晰凹陷硬滑是2乌黑蜷缩沉闷清晰凹陷硬滑是3乌黑蜷缩浊响清晰凹陷硬滑是4青绿蜷缩沉闷清晰凹陷硬滑是5浅白蜷缩浊响清晰凹陷硬滑是6青绿稍蜷浊响清晰稍凹软粘是7乌黑稍蜷浊响稍糊稍凹软粘是8乌黑稍蜷浊响清晰…西瓜数据集D如下:
编号色泽根蒂敲声纹理脐部触感好瓜1青绿蜷缩浊响清晰凹陷硬滑是2乌黑蜷缩沉闷清晰凹陷硬滑是3乌黑蜷缩浊响清晰凹陷硬滑是4青绿蜷缩沉闷清晰凹陷硬滑是5浅白蜷缩浊响清晰凹陷硬滑是6青绿稍蜷浊响清晰稍凹软粘是7乌黑稍蜷浊响稍糊稍凹软粘是8乌黑稍蜷浊响清晰稍凹硬滑是9乌黑稍蜷沉闷稍糊稍凹硬滑否10青绿硬挺清脆清晰平坦软粘否11浅白硬挺清脆模糊平坦硬滑否12浅白蜷缩浊响模糊平坦软粘否13青绿稍蜷浊响稍糊凹陷硬滑否14浅白稍蜷沉闷稍糊凹陷硬滑否15乌黑稍蜷浊响清晰稍凹软粘否16浅白蜷缩浊响模糊平坦硬滑否17青绿蜷缩沉闷稍糊稍凹硬滑否
信息熵: 描述信息的混乱程度,越接近1越混乱(纯度越低),0则不混乱(纯度越高)
信息熵是描述集合D的混乱程度(纯度)的值
以西瓜数据集为例,前7列(包含编号列)均为属性列,不是划分类别的指标,此例上一个瓜是否为好瓜是判断类别的唯一标准,则按照好瓜(是),好瓜(否)分为2类,即二分类问题故D的信息熵仅由最后一列(好瓜)进行计算简单看来:
好瓜的比例:(记为P(好瓜));坏瓜的比例:(记为P(坏瓜)),进行一次对比,最混乱情况也就是各一半,纯度最高情况则全部是好瓜/坏瓜.
如出现多个类别,则每个类别占比相同时最混乱,只有一个类别数据时纯度最高举例说明 (例1) 情况1.2的纯度大于情况1.1 ( 情况 1.1 ) : P 好瓜 1 2 , P 坏瓜 1 2 (情况1.1):P_{ 好瓜} \frac12,P_{坏瓜} \frac12 (情况1.1):P好瓜21,P坏瓜21 ( 情况 1.2 ) : P 好瓜 1 10 , P 坏瓜 9 10 (情况1.2):P_{ 好瓜} \frac1{10},P_{坏瓜} \frac9{10} (情况1.2):P好瓜101,P坏瓜109(例2) 情况2.2的纯度大于情况2.1 ( 情况 2.1 ) : P 好瓜 2 10 , P 坏瓜 8 10 (情况2.1):P_{ 好瓜} \frac2{10},P_{坏瓜} \frac8{10} (情况2.1):P好瓜102,P坏瓜108 ( 情况 2.2 ) : P 好瓜 1 10 , P 坏瓜 9 10 (情况2.2):P_{ 好瓜} \frac1{10},P_{坏瓜} \frac9{10} (情况2.2):P好瓜101,P坏瓜109这样看来,在二分类问题中,取每个情况取最大的pk,比较大小,越大的纯度越高即可但是三分类问题就会有点问题(例3) 情况3.2的纯度大于情况3.1 ( 情况 3.1 ) : P 1 6 10 , P 2 2 10 , P 3 2 10 (情况3.1):P_1 \frac6{10},P_2 \frac2{10},P_3 \frac2{10} (情况3.1):P1106,P2102,P3102 ( 情况 3.2 ) : P 1 6 10 , P 2 3 10 , P 3 1 10 (情况3.2):P_1 \frac6{10},P_2 \frac3{10},P_3 \frac1{10} (情况3.2):P1106,P2103,P3101 在例3的情况下,仅仅比较最大值6/10都是一样的,那么就需要比较第二大的值,3/102/10,故3.2的纯度大于情况3.1由此可见,比较两个样本D信息熵的方法有了但是不太方便,如果要用一个值来量化纯度(混乱程度),思路很清晰,同一个情况(一个集合D)中的分类占比越大,则对纯度程度的贡献就越大.即在(情况3.2)中 6/10的纯度意义 3/10 1/10使用log函数可以实现8提到的要求.pk值越小,则log(pk)会更小.选用以2为底的对数函数,故当前样本集合D中第k类样本所占比例为pk(k1,2,3,…,|y|),则D的信息熵为: E n t ( D ) − ∑ k 1 ∣ y ∣ p k l o g 2 p k Ent(D) -\sum\limits _{k1}^{|y|}p_klog_2p_k Ent(D)−k1∑∣y∣pklog2pk
信息增益: 使用某个属性a对样本集D进行划分所能获得的纯度提升程度
计算信息增益的目的,是选出一个属性,可以最大的划分数据则: 信息增益 混乱程度 − 使用 a 进行划分后的混乱程度 信息增益 混乱程度 - 使用a进行划分后的混乱程度 信息增益混乱程度−使用a进行划分后的混乱程度则: 使用 a 进行划分后的混乱程度 即每个子集的混乱程度乘以各自的权重之和 使用a进行划分后的混乱程度 即每个子集的混乱程度乘以各自的权重之和 使用a进行划分后的混乱程度即每个子集的混乱程度乘以各自的权重之和又混乱程度可以使用信息熵Ent(D)进行计算则可以推导,计算公式为: 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\limits _{v1}^V \frac{|Dv|}{|D|}Ent(D^v) Gain(D,a)Ent(D)−v1∑V∣D∣∣Dv∣Ent(Dv)
注: ∣ D ∣ 即表示集合 D 中的元素个数 |D| 即表示集合D中的元素个数 ∣D∣即表示集合D中的元素个数
以西瓜数据集举例说明
D包含若干属性,若使用某个属性a(即样本中的某列,例如色泽)对D进行划分,将D划分为多个子集以西瓜数据为例,如使用属性色泽进行划分,则一共有3个属性值,则将全部数据划分为3个子集,即: D 按照色泽划分 D 青绿 ∪ D 乌黑 ∪ D 浅白 D_{按照色泽划分} D_{青绿} \cup D_{乌黑} \cup D_{浅白} D按照色泽划分D青绿∪D乌黑∪D浅白故a在D上的信息增益为: G a i n ( D , 色泽 ) E n t ( D ) − ( ∣ D 青绿 ∣ ∣ D ∣ E n t ( D 青绿 ) ∣ D 青绿 ∣ ∣ D ∣ E n t ( D 乌黑 ) ∣ D 浅白 ∣ ∣ D ∣ E n t ( D 浅白 ) ) Gain(D,{色泽}) Ent(D) - (\frac{|D_{青绿}|}{|D|}Ent(D_{青绿}) \frac{|D_{青绿}|}{|D|}Ent(D_{乌黑}) \frac{|D_{浅白}|}{|D|}Ent(D_{浅白}) ) Gain(D,色泽)Ent(D)−(∣D∣∣D青绿∣Ent(D青绿)∣D∣∣D青绿∣Ent(D乌黑)∣D∣∣D浅白∣Ent(D浅白))可以看出,属性(色泽)对样本集D进行划分所能获得的纯度提升程度即为:Gain(D,色泽). 如每次都选择提升程度最大的一个,则决策树的分支越少.
增益率:排除子集数量对信息增益的影响
上文中求信息增益中,我们是忽略掉编号这一列的,因为按照编号属性进行计算信息增益,会划分17个子集,每个子集的信息熵Ent均为0,则信息增益Gain就是D的信息熵Ent G a i n ( D , 编号 ) E n t ( D ) − ( 0 0 . . . . 0 ) E n t ( D ) 0.998 Gain(D,{编号}) Ent(D) - (0 0 .... 0) Ent(D) 0.998 Gain(D,编号)Ent(D)−(00....0)Ent(D)0.998显然,这个信息增益非常高,单却是没有意义的,按照编号建立决策树,将会建立一个一层17分支的决策树.故,我们需要找到一个方法,解决信息增益对数数目校多的属性偏好这一个问题如使用Gain直接除V的数量(V是D按照属性a分组的所有子集,即D的子集数量),好像可以处理掉数目较多属性偏好的这个问题 G a i n ( D , 编号 ) V 0.998 17 0.058 \frac {Gain(D,{编号})}{V} \frac{0.998}{17} 0.058 VGain(D,编号)170.9980.058但是更适合的方法是除以IV(a),称为属性a的’固有值’Intrinsic ValueIV,也称’ 分离信息 ’ (Split information):算法如下: I V ( D , a ) S p l i t I n f o r m a t i o n ( D , a ) − ∑ v 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(D,a) SplitInformation(D,a) -\sum\limits _{v1}^{V}\frac {|D^v|}{|D|}log_2\frac{|D^v|}{|D|} IV(D,a)SplitInformation(D,a)−v1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣故增益率定义为 G a i n _ r a t i o ( D , a ) G a i n ( D , a ) I V ( D , a ) Gain\_ratio(D,a) \frac{Gain(D,a)}{IV(D,a)} Gain_ratio(D,a)IV(D,a)Gain(D,a)但是会带来一个新的问题,这个增益率会对数目较少的属性,有更强的偏好.(正好与信息增益的偏好相反) 8.故C4.5决策树算法,不是直接取增益率最高的属性,而是使用了一个启发式: 从候选划分属性中选出信息增益大于平均水平的属性,再选增益率最高的.
如有错误,敬请指正!
代码部分请参考:决策树代码实例(全部代码,包含绘图,ID.3算法,西瓜书示例)