12

我正在试验一些文本分类任务的 Chi-2 特征选择。我知道 Chi-2 测试检查依赖关系 B/T 两个分类变量,所以如果我们对具有二进制 BOW 向量表示的二进制文本分类问题执行 Chi-2 特征选择,每个 (feature,class) 上的每个 Chi-2 测试对将是一个非常简单的 Chi-2 测试,具有 1 个自由度。

引用文档:http ://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.chi2.html#sklearn.feature_selection.chi2 ,

该分数可用于从 X 中选择具有最高 χ²(卡方)统计值的 n_features 特征,其中必须包含相对于类的布尔值或频率(例如,文档分类中的术语计数)。

在我看来,我们还可以在 DF(字数)向量表示上执行 Chi-2 特征选择。我的第一个问题是:sklearn 如何将整数值特征离散化为分类?

我的第二个问题与第一个类似。从这里的演示代码:http: //scikit-learn.sourceforge.net/dev/auto_examples/document_classification_20newsgroups.html

在我看来,我们也可以在 TF*IDF 向量表示上执行 Chi-2 特征选择。sklearn 如何对实值特征进行 Chi-2 特征选择?

提前感谢您的友好建议!

4

1 回答 1

15

χ² 特征选择代码根据其输入(特征值)和 (类标签)构建列联表。每个条目ij对应于某个特征i和某个类别j,并保存属于类别j的所有样本的第i个特征值的总和。然后,它根据类的经验分布(只是它们在 中的相对频率)和特征值的均匀分布产生的预期频率计算 χ² 检验统计量。Xyy

这在特征值是频率(例如,术语)时有效,因为总和将是该类中特征(术语)的总频率。没有进行离散化。

当值是 tf-idf 值时,它在实践中也很有效,因为这些只是加权/缩放频率。

于 2013-01-30T10:39:39.687 回答