机器学习手记[3]---朴素贝叶斯识别垃圾邮件的应用

本文探讨了利用朴素贝叶斯算法来识别垃圾邮件的方法,基于已有的邮件训练集,通过计算特定词汇集合出现的概率来判断新邮件是否为垃圾邮件。
摘要由CSDN通过智能技术生成

本文主要基于《机器学习实战》朴素贝叶斯章节进行的,

问题:有一封邮件如何判定这个邮件是不是垃圾邮件? 假定我们已经有了好几封邮件的训练材料,同时做出了是否垃圾的分类。


解决:P(邮件是垃圾邮件|邮件包含某个词汇集合)*P(邮件包含词汇集合)

= P(某个词汇集合set |垃圾邮件)*P(垃圾邮件)
= P(word1|垃圾邮件)* P(word2|垃圾邮件)….*P(wordN|垃圾邮件)*P(垃圾邮件)

上面这个等式主要有两个部分
P(word1|垃圾邮件):通过已有的垃圾邮件训练集,我们可以计算这个word1在垃圾邮件词汇集合所占的频率,这就是我们要的值。 
P(垃圾邮件): 我们可以通过计算垃圾邮件所占整个训练邮件集合的比例可以得到,比如训练集有5个email,3个是junkEmail,那么垃圾概率0.6。


用email的例子来讲,就这这样操作的。


from numpy import *

# load training dataset



#添加数据集,
#加载包含5条短的message训练文本,及其对应是否垃圾邮件的分类结果
def loadDataSet():    
    trainMessages=[
            ['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],
            ['maybe', 'not', 'take
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值