朴素贝叶斯(垃圾邮件分类)

这篇具有很好参考价值的文章主要介绍了朴素贝叶斯(垃圾邮件分类)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.基于贝叶斯决策理论的分类方法

  朴素贝叶斯是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。对于大多数的分类算法,在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数,要么是条件分布。但是朴素贝叶斯却是生成方法,该算法原理简单,也易于实现。

优点:在数据较少的情况下仍然有效,可以处理多类别问题。

缺点:对于输入数据的准备方式较为敏感。

适用数据类型:标称型数据

  朴素贝叶斯是贝叶斯决策理论的一部分,所以讲述朴素贝叶斯之前有必要快速了解一下贝叶斯决策理论。  假设现在我们有一个数据集,它由两类数据组成,数据分布如下图所示:

朴素贝叶斯(垃圾邮件分类)

    我们现在用p1(x,y)表示数据点(x,y)属于类别1(图中用圆点表示的类别)的概率,用p2(x,y)表示数据点(x,y)属于类别2(图中用三角形表示的类别)的概率,那么对于一个新数据点(x,y),可以用下面的规则来判断它的类别:

如果 p1(x,y) > p2(x,y),那么类别为1。 
如果 p2(x,y) > p1(x,y),那么类别为2。
        也就是说,我们会选择高概率对应的类别。这就是贝叶斯决策理论的核心思想,即选择具有 最高概率的决策。看图1,如果该图中的整个数据使用6个浮点数来表示,并且计算类别概率的Python代码只有两行,那么我们应该使用下面哪种方法来对该数据点进行分类?

使用kNN算法,则需要进行1000次距离计算,和简单的概率计算相比,kNN的计算量太大;
使用决策树,则需要分别沿x轴、y轴划分数据,似乎效果并不是很好;
还有就是计算数据点属于每个类别的概率,并进行比较,这是最佳选择。
 

使用朴素贝叶斯过滤垃圾邮件

使用朴素贝叶斯进行交叉验证

def textParse(bigString):  # 输入字符串, 输出单词列表
    import re
    listOfTokens = re.split(r'[\W*]', bigString)                    # 字符串切分,去掉除单词、数字外的任意字符串
    return [tok.lower() for tok in listOfTokens if len(tok) > 2]    # 除了单个字母外,其他字符串全部转换成小写

函数textParse()接受一个大字符串并将其解析为字符串列表。该函数去掉少于两个字符的字符串,并将所有字符串转换为小写。 文章来源地址https://www.toymoban.com/news/detail-471750.html

# 完整的垃圾邮件测试函数
def spamTest():
    docList = []                 # 文档列表
    classList = []               # 文档标签
    fullText = []                # 全部文档内容集合
    for i in range(1, 26):                                           # 遍历垃圾邮件和非垃圾邮件各25个
        wordList = textParse(open('email/spam/%d.txt' % i).read())   # 读取垃圾邮件,将大字符串并将其解析为字符串列表
        docList.append(wordList)                                     # 垃圾邮件加入文档列表
        fullText.extend(wordList)                                    # 把当前垃圾邮件加入文档内容集合
        classList.append(1)                                          # 1表示垃圾邮件,标记垃圾邮件
        wordList = textParse(open(&

到了这里,关于朴素贝叶斯(垃圾邮件分类)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 朴素贝叶斯(垃圾邮件分类)

      朴素贝叶斯是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。对于大多数的分类算法,在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特

    2024年02月07日
    浏览(49)
  • 机器学习——朴素贝叶斯算法(垃圾邮件分类)

    先验概率 :指的是 事件发生前 的预判概率,可以根据历史数据/经验估算得到。例如,当我们需要判断西瓜是不是好瓜的时候,对纹理、根蒂等特征都不了解,只是平常我们买西瓜的时候买到好瓜的概率是70%,那么这个西瓜是好瓜的概率我们也可以认为是70%。这个概率70%就是

    2024年02月03日
    浏览(60)
  • 机器学习——使用朴素贝叶斯分类器实现垃圾邮件检测(python代码+数据集)

    机器学习——scikit-learn库学习、应用 机器学习——最小二乘法拟合曲线、正则化 机器学习——使用朴素贝叶斯分类器实现垃圾邮件检测(python代码+数据集) 贝叶斯公式: P ( A ∣ B ) = P ( A ) P ( B ∣ A ) P ( B ) P(A mid B)=frac{P(A) P(B mid A)}{P(B)} P ( A ∣ B ) = P ( B ) P ( A ) P ( B ∣ A )

    2024年02月10日
    浏览(44)
  • 机器学习-朴素贝叶斯过滤垃圾邮件

    什么是朴素贝叶斯算法:用贝叶斯定理来预测一个未知类别的样本属于各个类别的可能性,选择可能性最大的一个类别作为该样本的最终类别。 用这个算法处理垃圾邮件就可以理解为:用贝叶斯定理来预测一封由若干个单词组成的不知道是否为垃圾邮件的邮件,它是垃圾邮件

    2024年02月09日
    浏览(44)
  • 自实现朴素贝叶斯分类器with案例:基于SMS Spam Collection数据集的广告邮件分类

    首先要理解贝叶斯决策的理论依据,引用西瓜书上的原话:对于分类任务,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些 概率 和 误判损失 来选择最优的类别标记。 然后引入我们很熟悉的贝叶斯公式: P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) P(cmid bolds

    2024年02月07日
    浏览(46)
  • python机器学习——分类模型评估 & 分类算法(k近邻,朴素贝叶斯,决策树,随机森林,逻辑回归,svm)

    交叉验证:为了让被评估的模型更加准确可信 交叉验证:将拿到的数据,分为训练和验证集。以下图为例:将数据分成5份,其中一份作为验证集。然后经过5次(组)的测试,每次都更换不同的验证集。即得到5组模型的结果,取平均值作为最终结果。又称5折交叉验证。 通常情

    2024年02月03日
    浏览(67)
  • 基于weka平台手工实现朴素贝叶斯分类

    B事件发生后,A事件发生的概率可以如下表示: p ( A ∣ B ) = p ( A ∩ B ) P ( B ) (1) p(A|B)=frac{p(Acap B)}{P(B)}tag{1} p ( A ∣ B ) = P ( B ) p ( A ∩ B ) ​ ( 1 ) A事件发生后,B事件发生的概率可以如下表示: p ( B ∣ A ) = p ( A ∩ B ) P ( A ) (2) p(B|A)=frac{p(Acap B)}{P(A)}tag{2} p ( B ∣ A ) = P ( A ) p

    2024年02月13日
    浏览(46)
  • 基于朴素贝叶斯分类器的西瓜数据集(实战)

    最近刚开始学习机器学习中的朴素贝叶斯分类器,用西瓜数据集做了一下,最后结果预测正确率75%,其中运用到的python语法并不复杂,适合小白观看。 目录 朴素贝叶斯分类器思想的自然语言描述: 详细步骤在代码中说明 朴素贝叶斯分类器其实就是计算先验概率和每一个属性

    2024年02月11日
    浏览(35)
  • 第四章 基于概率论的分类方法:朴素贝叶斯

    朴素贝叶斯 优点:在数据较少的情况下仍然有效,可以处理多类别问题。 缺点:对于输⼊数据的准备⽅式较为敏感。 适⽤数据类型:标称型数据。 假设类别为 c 1 , c 2 c_1,c_2 c 1 ​ , c 2 ​ : 如果 p 1 ( x , y ) p 2 ( x , y ) p1(x,y) p2(x,y) p 1 ( x , y ) p 2 ( x , y ) ,那么类别为 c 1 c_1 c

    2024年02月13日
    浏览(45)
  • 机器学习:基于朴素贝叶斯(Naive Bayes)的分类预测

    目录 一、简介和环境准备 简介: 环境: 二、实战演练 2.1使用葡萄(Wine)数据集,进行贝叶斯分类 1.数据导入 2.模型训练 3.模型预测 2.2模拟离散数据集–贝叶斯分类 1.数据导入、分析 2.模型训练、预测  三、原理解析 朴素贝叶斯算法 优缺点: 朴素贝叶斯(Naive Bayes, NB) 是

    2023年04月19日
    浏览(93)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包