FSelector信息的衡量标准是什么?

时间:2014-03-18 18:56:36

标签: r

我试图了解如何正确使用R包FSelector,特别是它的information.gain函数。 According to the documentation

information gain = H(class) + H(attribute) - H(class,attribute)

这些数量意味着什么?它们如何与信息增益的标准定义相关联。据我所知,信息增益归因于attribute = H(S) - sum p(S_i)H(S_i)其中H(.)是熵; S是未分区的集合; S_i是属性引发的S子集;和p(S_i) = |S_i|/|S|

我还想知道是否有任何其他软件包使用信息增益的概念。

感谢您的帮助。

1 个答案:

答案 0 :(得分:9)

FSelector及其功能背后的想法是选择数据集中找到的最佳属性组合。也许,某些属性是不必要的(可能),这取决于您正在处理的数据集。

information.gain是一个根据“信息增益”选择最佳属性组合的函数。这个函数基于熵(你可以阅读很多关于它的文档)。

以下是使用着名的IRIS数据集的示例(请参阅http://rgm3.lab.nig.ac.jp/RGM/R_rdfile?f=FSelector/man/information.gain.Rd&d=R_CC处的完整示例):

library(FSelector)
data(iris)

weights <- information.gain(Species~., iris)
print(weights)

subset <- cutoff.k(weights, 2)

f <- as.simple.formula(subset, "Species")
print(f)

这意味着最重要的属性是Petal.Width和Petal.Length

有很多库使用类似的功能! (RWeka,CORElearn,FSelector ......)