首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于熵和信息增益的Matlab特征选择

基于熵和信息增益的Matlab特征选择
EN

Stack Overflow用户
提问于 2014-10-25 10:39:26
回答 1查看 2.9K关注 0票数 0

我有一个数据集包含数值和非数字值,所以我将它们划分为表,其中tNonNumeric表示表包含非数字值。

我的因变量是churn特性,其中0表示尼姑客户,1表示搅动者。

我需要计算每个功能的信息增益,以便我可以决定哪些是必要的,哪些不是。为了做到这一点,我创建了两个表,其中Kchurn0Tablechurn value=0表示客户,Kchurn1Tablechurn =1表示客户。在此之后,我计算了总熵,以及Entropy(i),也就是没有特征i的熵。

代码语言:javascript
复制
TotEntropy= -1 * ((height(Kchurn0Table)/height(tNonNumeric)) * log2(height(Kchurn0Table)/height(tNonNumeric))) + (height(Kchurn1Table)/height(tNonNumeric))* log2(height(Kchurn1Table)/height(tNonNumeric));
for i=1 :width(tNonNumeric)
    dummy_dataset=tNonNumeric;
    dummy_dataset(:,i)=[];
    dummy_churn0=Kchurn0Table;
    dummy_churn1=Kchurn1Table;
    dummy_churn0(:,i)=[];
    dummy_churn1(:,i)=[];
    Entropy(i)= -1 * ((height(dummy_churn0)/height(dummy_dataset)) * log2(height(dummy_churn0)/height(dummy_dataset))) + height(dummy_churn1)/height(dummy_dataset)* log2(height(dummy_churn1)/height(dummy_dataset));
    InfoGain(i)= TotEntropy - Entropy(i);
end

但在每次迭代中,我得到的值与熵(I)中的熵相同,因此对于InforGain来说是0。

我不知道我错过了什么。所有的帮助都将受到感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-20 15:03:53

我认为Information GainMutual Information是一样的,所以也许您应该使用以下公式:

MI(X,Y)=H(Y)-H(Y|X)

其中H(Y)、Y、的熵,H(Y|X)是condicional熵。

这意味着MI(X,Y)测量、X、Y的公共信息量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26561477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档