【问题标题】:Feature Selection by Entropy and Information Gain in MatlabMatlab中熵和信息增益的特征选择
【发布时间】:2014-10-25 10:39:26
【问题描述】:

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

我的因变量是 churn 特征,其中 0 表示流失客户,1 表示流失客户。

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

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

但在每次迭代中,我得到的值与 Entropy(i) 中的熵相同,因此 InforGain 为 0。

我无法弄清楚我错过了什么。我们将不胜感激。

【问题讨论】:

    标签: matlab statistics entropy feature-selection


    【解决方案1】:

    我认为Information Gain 与Mutual Information 是一回事,所以也许你应该使用以下等式:

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

    其中H(Y) 是Y 的熵,H(Y|X) 是条件熵。

    这意味着MI(X,Y) 将公共信息的数量测量为 X 和 Y。

    【讨论】:

      猜你喜欢
      • 2010-12-27
      • 2011-07-24
      • 2010-12-23
      • 2016-01-30
      • 2020-09-22
      • 2016-02-23
      • 2016-06-23
      • 2021-01-28
      • 1970-01-01
      相关资源
      最近更新 更多