问题描述
我使用与此链接相同的方法:https://medium.com/analytics-vidhya/bag-of-visual-words-bag-of-features-9a2f7aec7866
如链接中所述,TD IDF 可用于从视觉词袋中删除不太重要的“视觉词”。但是,在网上查看后,似乎 TD-IDF 仅用于文本特征提取。 (例如,sklearn.feature_extraction.text.TfidfTransformer)
是否有一种简单的方法可以使用 TF-IDF 进行图像分类而不是文本分类?
解决方法
我怀疑它对于图像是否足够标准,但自己计算它很容易:
- 对于任何“视觉词”,文档频率 (DF) 是包含该“视觉词”的图像数量除以图像总数。 IDF 是该值的倒数。
- 特定图像中“视觉词”的“词频”(TF) 是“词”在图像中出现的次数除以该图像中“词”的总数。
现在只需应用公式:TFIDF = TF * log(IDF)。
或者,您可以将每个图像表示为带有表示视觉词的字符串的伪句子,然后在伪句子集上使用标准 TfidfTransformer
。但这可能是更多的工作,但没有什么好处。