Machine learning 对TF和TF*IDF向量执行Chi-2特征选择

Machine learning 对TF和TF*IDF向量执行Chi-2特征选择,machine-learning,scikit-learn,feature-selection,Machine Learning,Scikit Learn,Feature Selection,我正在试验一些文本分类任务的Chi-2特征选择。 我知道Chi-2测试检查两个分类变量之间的依赖关系B/T,因此,如果我们对具有二进制弓向量表示的二进制文本分类问题执行Chi-2特征选择,每个特征上的每个Chi-2测试,类对将是一个具有1个自由度的非常简单的Chi-2测试 从文件中引用: 该分数可用于从X中选择χ2卡方统计值最高的n_特征,该特征必须包含布尔值或频率,例如文档分类中相对于类的术语计数 在我看来,我们还可以对DF字数向量表示执行Chi-2特征选择。我的第一个问题是:sklearn如

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

从文件中引用:

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

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

我的第二个问题与第一个问题类似。从这里的演示代码:

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


提前感谢您的建议

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

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


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

非常感谢您的友好回答@larsmans。我理解列联表中的值-单元格可以接受任何非负实值。让我困惑的是列联表的列名。例如,如果特征X的列联表基于二进制弓形特征向量,则列名将是文档中的X,而文档中没有X。如果底层特征向量是整数或实值,它们会是什么?类似于X在文档中出现0-5次,X在文档中出现6-10次,等等??这些列直接对应于术语。正如我试图解释的那样,单元I,j包含类j中特征I的频率,并且没有进行离散化。感谢@larsmans的耐心解释-我现在知道了它的计算方法。我以前想得不对。零假设实际上是文档类对特征频率没有影响。