离散特征之间的相关性

  在数据挖掘的时候,有时候我们会想计算不同特征之间的相关,比如在建模时用来减少冗余特征。连续特征之间的相关性很简单,用皮尔逊相关就可以了,是非常通用且有效的方法。但是在实践里面,大部分时候我们处理的是离散特征,所以这里想提出一个离散特征之间的相关计算办法。这是之前在看决策树C4.5的时候想到的一个思路,就是离散特征之间的相关,可以用决策树的经典算法中的信息增益和信息增益比来描述。

  假定有一组数据集S,两个离散特征分别为A和B。Entropy(SA)表示使用特征A对数据集S进行分类后,所对应的信息熵(如果是在分类问题里,那么这个特征A就是希望学会的分类)。信息熵的形式为


这里写图片描述

p(i)是特征A中,样品属于第i类的概率。如果样品都属于一个类别,那么Entropy(SA)=0,相反,样品类别越多,分布越均匀,则信息熵越大,也可以说这组数据的不纯度越高。比如A代表是否会打篮球这个特征,如果样品都是会打的,那么纯度就很高。

  决策树算法中的信息增益,被定义为


这里写图片描述

这个式子看起来有点复杂,其中Gain(SA_B)表示加入特征B分类之后的信息增益,i是根据特征B来分类的第i个类别,Bi是第i个类别的样品集合,|Bi|就是第i个类别的样品数目,|S|是总样品数,最后Entropy(SA_Bi)指的是对于在第i个类别的样品集,使用A来分类得到的信息熵。

  可以想象,如果A和B两个特征对S的分类是完全一致的,那么对于B所分的每一类数据子集,对A再进行分类也就归为一类,所以其信息熵Entropy(SA_Bi)全部为0,因而信息增益最大。A与B的分类越相似,信息增益的值也就越大,所以信息增益实际上就反映了A和B之间的相关。事实上,信息增益对于A、B也是对称的,即Gain(SA_B)=Gain(SB_A)。

  可惜的是,信息增益有着一个巨大的缺点,那就是对于分类数目多的特征有不正确的偏向。比如若对于S对于特征B是每一个样品一个类别,那么显然信息增益也是最大,但这样的结果不是我们想要得到的。为了解决这个问题,非常直观地就会想到要根据特征本身的分类情况进行标准化,具体而言就是要除以这个分类的信息熵,亦即


这里写图片描述

  在做决策树分类的时候这样是可行的,但是要用来描述A和B的相关则不行,因为信息增益对于A,B不对称。解决的方法也十分简单,就是改为去除以A和B的信息熵的乘积的开方


这里写图片描述

如此,我们就可以得到离散特征之间的相关程度了。

  这里的思路其实非常简单,决策树每次选择不同特征进行分叉,本质上依据的就是特征跟目标分类之间的相关性,因此这种算法当然可以用于计算离散特征之间的相关。

  • 9
    点赞
  • 64
    收藏
  • 打赏
    打赏
  • 17
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sky88088

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值