TF-IDF矢量化器不比countvectorizer更好(sci-kit学习

时间:2016-07-05 12:52:15

标签: python-2.7 scikit-learn tf-idf

我正在制作一个包含10个标签的多标签文本分类问题。 数据集很小,总共有+ - 7000个项目和+ -7500个标签。我正在使用python sci-kit学习,结果出现了一些奇怪的东西。作为基线,我开始使用计数器,并且实际上正在计划使用tfidf矢量化器,我认为它会更好。但它没有...使用countvectorizer我得到的性能比0.1更高的f1分数。 (0,76 vs 0,65)

我无法理解为什么会出现这种情况? 共有10个类别,其中一个称为杂项。特别是这个使用tfidf的性能要低得多。

有谁知道tfidf的表现何时比计数差?

2 个答案:

答案 0 :(得分:1)

问题是,为什么不呢?两者都是不同的解决方案。

您的数据集是什么,有多少单词,如何标记,如何提取您的功能? countvectorizer只计算单词,如果它做得很好,那就这样吧。

答案 1 :(得分:1)

没有理由为什么idf会为分类任务提供更多信息。它在搜索和排名方面表现良好,但分类需要收集相似性,而不是奇点。

IDF旨在发现一个样本与语料库其余部分之间的奇异性,您正在寻找的是一个样本与其他群集之间的奇点。 IDF使群集内TF相似性变得平滑。