在TF和TF*IDF向量上执行Chi-2特征选择

Mos*_* Xu 11 machine-learning feature-selection scikit-learn

我正在尝试一些文本分类任务的Chi-2特征选择.我理解Chi-2测试检查B/T两个分类变量的依赖关系,所以如果我们用二进制BOW矢量表示对二进制文本分类问题执行Chi-2特征选择,每个(特征,类)的每个Chi-2测试对将是一个非常直接的Chi-2测试,具有1个自由度.

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

该分数可用于选择具有来自X的χ2(卡方)统计值的最高值的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特征选择?

提前感谢您的善意建议!

Fre*_*Foo 13

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

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

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