特征选择后重新归一化特征向量



我已经使用sklearn.feature_extraction.text对已经转换为TF*IDF特征向量的训练文档进行了χ²特征选择。TfidfVectorizer,默认情况下生成规范化向量。然而,在选择top-K最具信息量的特征后,由于维度的去除,向量不再归一化(所有向量现在都具有长度<1) .

特征选择后,是否建议重新归一化特征向量?我也不是很清楚B/T标准化和缩放的主要区别。它们是否为像SVC这样的学习者提供了类似的服务?

提前感谢您的友好回答!

这其实是一堆问题。对tf-idf向量进行归一化的主要原因是,它们的点积(svm在其决策函数中使用)很容易被解释为余弦相似度,余弦相似度是信息检索中文档向量比较的主要方法。规范化确保

"hello world"             -> [1 2]
"hello hello world world" -> [2 4]

变成了相同的向量,所以将一个文档连接到它自己上不会改变决策边界,并且这两个文档之间的相似性正好是1(尽管使用次线性缩放,矢量器构造函数中的sublinear_tf,这不再是真的)。

进行缩放的主要原因是为了避免数值不稳定性问题。归一化处理了其中的大部分,因为特征已经在[0,1]范围内了。(我认为这也与正则化有关,但我不经常使用svm。)

正如你所注意到的,chi²"非规范化"特征向量,所以要回答最初的问题:你可以尝试重新规范化它们。当我在scikit-learn文档分类示例中添加chi²特征选择时,我就这样做了,它对一些估计器有所帮助,但对另一些估计器却不利。您还可以尝试对未规范化的tf-idf向量进行chi²(在这种情况下,我建议您尝试设置sublinear_tf),然后进行缩放或规范化。

相关内容

  • 没有找到相关文章

最新更新