使用朴素贝叶斯进行文档分类

朴素贝叶斯文档分类github代码

  1. 朴素(naive)贝叶斯之朴素
    这里的朴素一词是指,即一个特征或者某个词条(token)的出现的可能性与它和其他单词的相邻性没有关系(当然,这个假设是不合理的,就如水果一词出现在健康一词周围的概率就明显高于出现在不健康一词周围的概率),另外需要补充的是,这里的每一个特征也假设是同等重要的(也就是说每一个词条只考虑出现与否(set-of-words model),而不会统计它所出现的次数(bag-of-words model)),这个假设同样存在瑕疵,就好像一篇文档中,文档(段落)首段(首句)和末段(末句)的词汇要比其他段落(语句)重要。但我要强调的是,这样的假设的朴素贝叶斯算法的效果却还不错。

  2. 算法训练
    需要用到的符号, Wi=(ωi0, ωi1, ωi2, , ωin) 为一个文档向量,其中 i 表示第 i 个文档, n 表示词典大小; ci 表示第 i 个类别。那么,

    p(ci|Wj) = p(Wj|ci)p(ci)p(Wj),
    进一步地,通过朴素贝叶斯假设,我们可以将上式写为
    p(ωj0|ci)p(ωj1|ci)p(ωj2|ci)p(ωjn|ci)p(ci)p(Wj),p(Wj)

    这样就可以计算出文档为类别 ci 的可能性大小了,接下来就只需要求,
    maxnp(ci|Wj)n

你可能感兴趣的:(ML)