为什么信息增益功能选择得分为零

时间:2015-10-29 22:35:07

标签: machine-learning artificial-intelligence weka feature-selection

我有一个数据集,我使用WEKA中的信息增益功能选择方法来获取重要功能。以下是我得到的输出。

Ranked attributes:
0.97095    1 Opponent
0.41997   11 Field_Goals_Made
0.38534   24 Opp_Free_Throws_Made
0.00485    4 Home
0          8 Field_Goals_Att
0         12 Opp_Total_Rebounds
0         10 Def_Rebounds
0          9 Total_Rebounds
0          6 Opp_Field_Goals_Made
0          7 Off_Rebounds
0         14 Opp_3Pt_Field_Goals_Made
0          2 Fouls
0          3 Opp_Blocks
0          5 Opp_Fouls
0         13 Opp_3Pt_Field_Goals_Att
0         29 3Pt_Field_Goal_Pct
0         28 3Pt_Field_Goals_Made
0         22 3Pt_Field_Goals_Att
0         25 Free_Throws_Made

这告诉我所有得分为0的功能都可以忽略,是否正确?

现在,当我在WEKA中尝试Wrapper子集评估时,我得到了在信息增益方法中被忽略的选择属性(即其得分为0)。以下是输出

Selected attributes: 3,8,9,11,24,25 : 6
                 Opp_Blocks
                 Field_Goals_Att
                 Total_Rebounds
                 Field_Goals_Made
                 Opp_Free_Throws_Made
                 Free_Throws_Made

我想了解,包装器子集评估方法强烈考虑信息增益忽略的属性是什么原因?

2 个答案:

答案 0 :(得分:10)

要了解正在发生的事情,首先要了解两种特征选择方法正在做什么。

属性的信息增益告诉您有关属性为您提供的分类目标的信息量。也就是说,它测量您知道属性值的情况与您不知道属性值的情况之间的信息差异。信息的常用度量是Shannon entropy,尽管任何允许量化信息信息内容的措施都可以。{/ p>

因此,信息增益取决于两件事:在了解属性值之前可获得多少信息,以及之后可用的信息量。例如,如果您的数据只包含一个类,那么您已经知道该类没有看到任何属性值,并且信息增益始终为0.另一方面,您没有信息可以开始(因为您想要预测的类在数据中以相等的数量表示,并且属性将数据完美地分成类,其信息增益将为1.

在这种情况下需要注意的重要一点是,信息增益纯粹是信息理论的衡量标准,不考虑任何实际的分类算法

这是包装方法的不同之处。它不是从信息理论的角度分析属性和目标,而是使用实际分类算法来构建具有属性子集的模型,然后评估该模型的性能。然后它尝试不同的属性子集并再次执行相同的操作。受训模型表现出最佳经验绩效的子集获胜。

为什么这两种方法会给你不同的结果有很多原因(这个列表并不详尽):

  • 分类算法可能无法利用属性可以提供的所有信息。
  • 分类算法可以在内部实现自己的属性选择(例如决策树/森林学习者这样做),它会考虑比属性选择产生的更小的子集。
  • 个别属性可能不具有信息性,但可能是(例如,ab可能没有单独的信息,但另一方面a*b可能)。属性选择不会发现这一点,因为它会孤立地评估属性,而分类算法可能会利用它。
  • 属性选择不会按顺序考虑属性。例如,决策树使用一系列属性,而b可以自己提供信息,除了a之外,它可能不提供任何信息,这些信息在树中使用得更高。因此,b在根据信息增益进行评估时会显得有用,但不会被首先“知道”a的树使用。

实际上,使用包装器进行属性选择通常更好,因为它会考虑您要使用的实际分类器的性能,并且不同的分类器在信息使用方面差异很大。分类器不可知措施(如信息增益)的优势在于它们的计算成本更低。

答案 1 :(得分:2)

在滤波技术(此处为信息增益)中,特征被认为是彼此孤立的,因此当单独认为IG为0时

但在某些情况下,一个功能需要另一个功能 提高准确度,因此当与其他特征一起考虑时,它会产生预测值。

希望这有助于及时:)