本章通过BOW 到tf-idf的变化,讨论 feature scaling 的效果.
TF-IDF: BOW的变种
tf-idf可以说就是BOW基础上的变种, 全称: term frequency- inverse document frequency ,中文: 词频-逆文件频率.
BOW记录文件中的词频, 明显的问题就是会强调一些没意义的词, 如英文中的 'the' 'and' 'it' 等等词频会很高, 而一些带有关键信息的词却没有被强调出来. 而逆文件频率就很好的解决了这一问题, 这个算法有意思的就是在于以一种高效自动的方式给 各种词的重要性 赋权重.
基础公式如下:
bow(w,b) = #times word w appears in document d
tf-idf(w,d) = bow(w,d) * N/ (#documents in which word w appears)
其中 N 是数据集中文档的数量, N/(#documents in which word w appears) 就是IDF, 逆文档频率. 若 idf 接近1, 意味着这个词w出现在大部分文档中; 若词w仅出现在几个文档中, idf 就会很高.
当然, log transform 是更好的选择:
tf-idf(w,d) = bow(w,d) * log N/ (#documents in which word w appears)
总结一下: tf-idf makes rare words more prominent and effectively ign