`
jerry8023
  • 浏览: 20223 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

贝叶斯算法介绍

阅读更多
贝叶斯算法介绍
一. 贝叶斯过滤算法的基本步骤

1) 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。
2) 提取邮件主题和邮件体中的独立字串例如 ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。
3) 每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。
4) 计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)
5) 综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:
A事件----邮件为垃圾邮件;
t1,t2 …….tn代表TOKEN串
则P(A|ti)表示在邮件中出现TOKEN串ti时,该邮件为垃圾邮件的概率。

P1(ti)=(ti在hashtable_good中的值)
P2(ti)=(ti在hashtable_ bad中的值)
则 P(A|ti)= P1(ti)/[(P1(ti)+ P2(ti)];
6) 建立新的哈希表 hashtable_probability存储TOKEN串ti到P(A|ti)的映射
7) 至此,垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表 hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。
当新到一封邮件时,按照步骤2)生成TOKEN串。查询hashtable_probability得到该TOKEN 串的键值。
假设由该邮件共得到N个TOKEN串,t1,t2…….tn, hashtable_probability中对应的值为P1,P2,。。。。。。PN,
P(A|t1 ,t2, t3……tn)表示在邮件中同时出现多个TOKEN串t1,t2…….tn时,该邮件为垃圾邮件的概率。
由复合概率公式可得
P(A|t1 ,t2, t3……tn)=(P1*P2*。。。。PN)/[P1*P2*。。。。。PN+(1-P1)*(1-P2)*。。。(1-PN)]
当P(A|t1 ,t2, t3……tn)超过预定阈值时,就可以判断邮件为垃圾邮件。

二. 贝叶斯过滤算法举例

例如:一封含有“法 轮 功”字样的垃圾邮件 A
和 一封含有“法律”字样的非垃圾邮件B
根据邮件A生成hashtable_ bad,该哈希表中的记录为
法:1次
轮:1次
功:1次
计算得在本表中:
法出现的概率为0。3
轮出现的概率为0。3
功出现的概率为0。3
根据邮件B生成hashtable_good,该哈希表中的记录为:
法:1
律:1
计算得在本表中:
法出现的概率为0。5
律出现的概率为0。5
综合考虑两个哈希表,共有四个TOKEN串: 法 轮 功 律
当邮件中出现“法”时,该邮件为垃圾邮件的概率为:
P=0。3/(0。3+0。5)=0。375
出现“轮”时:
P=0。3/(0。3+0)=1
出现“功“时:
P=0。3/(0。3+0)=1
出现“律”时
P=0/(0+0。5)=0;
由此可得第三个哈希表:hashtable_probability 其数据为:
法:0。375
轮:1
功:1
律:0

当新到一封含有“功律”的邮件时,我们可得到两个TOKEN串,功 律
查询哈希表hashtable_probability可得
P(垃圾邮件| 功)=1
P (垃圾邮件|律)=0
此时该邮件为垃圾邮件的可能性为:
P=(0*1)/[0*1+(1-0)*(1-1)]=0
由此可推出该邮件为非垃圾邮件
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    基于朴素贝叶斯算法的垃圾邮件分类方法研究

    该论文中详细介绍了基于朴素贝叶斯的垃圾邮件分类过程,以及五折交叉验证的评价指标,并包含完整的代码,python格式,是一个学习朴素贝叶斯方法不错的实例。

    贝叶斯算法及历史的描述和介绍

    关于贝叶斯算法及历史的介绍。 【贝叶斯公式】  设D1,D2,……,Dn为样本空间S的一个划分,如果以P(Di)表示事件Di发生的概率,且P(Di)>0(i=1,2,…,n)。对于任一事件x,P(x)>0,则有:  n  P(Dj/x)=p(x/Dj)P...

    贝叶斯算法实现文本分类器

    该文本详细的介绍了采用贝叶斯算法对文本进行分类,帮助大家快速入门,简洁明了。

    第6章 朴素贝叶斯算法1

    第 6 章 朴素贝叶斯算法目录第 6 章 朴素贝叶斯 16.1 朴素贝叶斯算法 16.1.1 概念介绍 16.1.2 理解朴素贝叶斯 26.1.3 计算示例 3

    决策树和朴素贝叶斯算法简介

    本节主要介绍数据挖掘中常见的分类方法决策树和朴素贝叶斯算法。 决策树算法 决策树(Decision Tree,DT)分类法是一个简单且广泛使用的分类技术。 决策树是一个树状预测模型,它是由结点和有向边组成的层次结构。...

    朴素贝叶斯分类算法

    朴素贝叶斯分类算法,很好的介绍

    贝叶斯算法(bayesian)介绍

    贝叶斯是基于概率的一种算法,是Thomas Bayes:一位伟大的数学大师所创建的,目前此种算法用于过滤垃圾邮件得到了广泛地好评。贝叶斯过滤器是基于“自我学习”的智能技术,能够使自己适应垃圾邮件制造者的新把戏,...

    面向朴素贝叶斯算法的离散化方法研究(论文)

    这是一篇2008年6月的硕士论文,详细的介绍了有关朴素贝叶斯 离散化的几种算法 包括EMD,PKI,muti_EMD,和weka中离散化的方法等等

    贝叶斯过滤算法

    贝叶斯算法介绍 ,对于实现文本分类,和搜索引擎很好的学习资料

    Python实现的朴素贝叶斯算法经典示例【测试可用】

    主要介绍了Python实现的朴素贝叶斯算法,结合实例形式详细分析了Python实现与使用朴素贝叶斯算法的具体操作步骤与相关实现技巧,需要的朋友可以参考下

    论文研究-基于贝叶斯算法的短信过滤系统设计 .pdf

    基于贝叶斯算法的短信过滤系统设计,李钦,,本文给出了一种基于朴素贝叶斯算法的短信过滤系统设计。首先介绍了文本分类的关键技术,包括分词技术、特征项选取、分类算法等。

    Java实现的朴素贝叶斯算法示例

    主要介绍了Java实现的朴素贝叶斯算法,结合实例形式分析了基于java的朴素贝叶斯算法定义及样本数据训练操作相关使用技巧,需要的朋友可以参考下

    PHP实现机器学习之朴素贝叶斯算法详解

    在这篇文章我将会使用朴素贝叶斯算法Clasifier作为一个类来介绍。这是一个简单易于实施的算法,并且可给出满意的结果。但是这个算法是需要一点统计学的知识去理解的。在文章的最后部分你可以看到一些实例代码,甚至...

    python实现朴素贝叶斯算法

    主要为大家详细介绍了Python实现朴素贝叶斯算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Matlab实现BO-GPR贝叶斯算法优化高斯过程回归多变量回归预测(完整源码和数据)

    1.Matlab实现BO-GPR贝叶斯算法优化高斯过程回归多变量回归预测(完整源码和数据) ; 2.数据集为excel,输入7个特征,输出1个变量,运行主程序即可; 3.命令窗口输出RMSE、MAPE、MAE、R2等评价指标;运行环境Matlab...

    ChatGPT贝叶斯公式PPT课堂演示

    朴素贝叶斯算法被广泛应用于文本分类、垃圾邮件过滤等领域,因其简单和高效而受到青睐。 第四部分讨论了生成式模型与判别式模型。生成式模型和判别式模型是机器学习中常见的两种方法。生成式模型试图对数据生成过程...

    基于Java实现的(GUI)贝叶斯算法的拼写检查器【100012683】

    先介绍针对于英文单词的拼写错误的检测以及纠错,然后简单介绍了拼写检查器的原理以及贝叶斯算法在拼写纠错的应用。 通过 Java 的可视化界面,做了一个简单的电子词典。

    基于 Java 实现贝叶斯算法的拼写检查器(电子词典)【100011129】

    先介绍针对于英文单词的拼写错误的检测以及纠错,然后简单介绍了拼写检查器的原理以及贝叶斯算法在拼写纠错的应用。通过Java的可视化界面,做了一个简单的电子词典。

    python中如何使用朴素贝叶斯算法

    本文主要介绍了python中如何使用朴素贝叶斯算法的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧

    层状贝叶斯算法附matlab代码+仿真结果和运行方法.zip

    2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...

Global site tag (gtag.js) - Google Analytics