昨天睡觉时候突然思考了下朴素贝叶斯分类方法,发现之前理解不透,突然搞不明白怎么分类的了,今天又看了看,才算大概了解了,比如是垃圾邮件分类。
1.训练集:首先对垃圾邮件和非垃圾邮件进行分词,并记录邮件分类。此处词汇集合用来记录所有训练数据的所有词汇,然后对于每封邮件去判断集合中的词是否在当前邮件出现,形成一个矩阵。
2.分别计算垃圾邮件和非垃圾邮件中集合中的每个词分别出现次数,出现概率。训练阶段就算完成了。
3.测试数据:(其实此处的数据使用的是留存交叉验证法:即取垃圾邮件,非垃圾邮件中的少量数据作为测试数据,因为有明确的分类,可以检验测试效果)对于每条测试邮件数据,计算邮件中的每个词出现的次数及概率(此处的概率不进行取对数)。
分类时候使用的公式为:所有训练数据中每个单词出现在词汇集合的频率矩阵 叉乘 当前测试邮件的每个词在词汇集合出现的频率矩阵 再乘以把它预测为垃圾邮件(pAbuse)或者非垃圾邮件(1-pAbuse)的概率。
朴素贝叶斯分类认为,对于一条新的数据来说,如果把它预测为垃圾邮件的概率和非垃圾邮件的概率哪个较大,哪个就预测为最终的分类结果。
注:由于每个概率都特别小,相乘以后由于计算机运算特点,导致下溢出为0,此时对预测概率求对数,就会出现