【问题标题】:TfidfVectorizer - Normalisation biasTfidfVectorizer - 归一化偏差
【发布时间】:2016-03-29 21:02:56
【问题描述】:

我想确保我了解属性 use_idf 和 sublinear_tf 在 TfidfVectorizer 对象中的作用。这几天我一直在研究这个。我正在尝试对不同长度的文档进行分类,并使用当前的 tf-idf 进行特征选择。

我相信,当use_idf=true 算法将针对固有问题(使用 TF)的偏见正常化时,频率 X 倍的术语不应该是 X 倍重要。

使用tf*idf 公式。然后sublinear_tf = true 灌输1+log(tf) 使其规范化对长文档与短文档的偏见。

我正在处理对冗长文档(大多数属于一个类)的固有偏见,这种规范化真的会减少偏见吗?

如何确保语料库中的文档长度没有集成到模型中?

我正在尝试验证模型中是否应用了规范化。我正在尝试提取语料库的归一化向量,所以我假设我可以总结 Tfidfvectorizer 矩阵的每一行。但是总和大于 1,我认为标准化的语料库会将所有文档转换为 0-1 之间的范围。

vect = TfidfVectorizer(max_features=20000, strip_accents='unicode',
stop_words=stopwords,analyzer='word', use_idf=True, tokenizer=tokenizer, ngram_range=(1,2),sublinear_tf= True , norm='l2')

tfidf = vect.fit_transform(X_train)
# sum norm l2 documents
vect_sum = tfidf.sum(axis=1)

【问题讨论】:

    标签: python scikit-learn normalization tf-idf


    【解决方案1】:

    use_idf=true(默认情况下)将全局组件引入术语频率组件(本地组件:单个文章)。在查看两个文本的相似性时,不是计算每个文本具有的术语数量并进行比较,而是引入 idf 有助于将这些术语分类为相关或不相关。根据 Zipf 定律,“任何单词的出现频率与其排名成反比”。也就是说,最常用词的出现次数是第二常用词的两倍,第三常用词的三倍等等。即使去掉停用词,所有词都服从 Zipf 定律。

    从这个意义上说,假设您有 5 篇描述汽车主题的文章。在此示例中,“auto”一词可能会出现在所有 5 个文本中,因此不会是单个文本的唯一标识符。另一方面,如果只有一篇文章描述汽车“保险”而另一篇描述汽车“机械师”,这两个词(“机械师”和“保险”)将是每个文本的唯一标识符。通过使用idf,文本中不太常见的单词(例如“mechanics”和“insurance”)将获得更高的权重。因此,使用idf 并不能解决文章长度产生的偏差,因为它又是一个全局分量的度量。如果您想减少长度产生的偏差,那么正如您所说,使用sublinear_tf=True 将是解决它的一种方法,因为您正在转换本地组件(每篇文章)。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      use_idfsublinear_tf 都不处理文档长度。实际上,您对use_idf 的解释“频率高 X 倍的术语不应该像 X 倍那样重要”更适合作为对 sublinear_tf 的描述,因为 sublinear_tf 导致 Tfidf 得分与词频。

      use_idf 表示使用逆文档频率,这样在大多数文档中出现频率非常高的术语(即不良指标)与出现频率较低但出现在特定位置的术语相比,其权重较小仅文档(即,一个很好的指标)。

      为了减少文档长度偏差,您可以使用归一化(TfidfVectorizer 参数中的norm),因为您根据该文档的总分按比例缩放每个术语的 Tfidf 分数(norm=l1 的简单平均值,norm=l2 的平方平均值)

      默认情况下,TfidfVectorizer 已经使用norm=l2,所以我不确定是什么导致了您面临的问题。也许那些较长的文件确实也包含类似的词?此外,分类通常很多依赖于数据,所以我在这里不能说太多来解决你的问题。

      参考资料:

      【讨论】:

      • 我不是说我有问题。我只是想验证由于文档长度引起的任何偏差都没有集成到模型中,因为我认识到这可能是其本身用于分类的属性。感谢您对这些属性的解释!
      猜你喜欢
      • 2016-05-08
      • 2016-07-28
      • 1970-01-01
      • 2017-10-28
      • 2021-02-28
      • 2020-06-14
      • 2018-02-25
      • 2011-12-25
      • 2014-08-05
      相关资源
      最近更新 更多