从贝叶斯公式到垃圾邮件的识别 原创 sbp810050504 2018-11-22 23:04:16 博主文章分类:NLP&ML ©著作权 文章标签 贝叶斯 垃圾邮件 机器学习 文章分类 大数据 ©著作权归作者所有:来自51CTO博客作者sbp810050504的原创作品,请联系作者获取转载授权,否则将追究法律责任 看《黑客与画家》讲到"防止垃圾邮件的一种方法",觉得很适合用来表述数学公式与机器学习之间的关系。涉及到机器学习的数学公式比较简单,概率论基础教程都会讲到。解决的问题也很典型: 垃圾邮件的识别。 防止垃圾邮件有很多种方法,最直观的一种就是“规则”, 各种if-else的条件。这种方法能够解决一个问题,但是解决不了一类问题。而且,这个规则的制定需要非常熟悉业务,好在通常我们面临的业务问题是很垂直的, 通过规则, 也能够解决问题。毕竟解决问题才是业务的核心诉求。 接下来, 业务随着业务的发展, 规则越来越复杂, 我们维护起来也越来越吃力。 而且使用规则,是被动式的解决问题,用户体验也不好。 这个时候,新的方法该上场了,这个方法就是 “统计学方法”。 因为接触的规则越多, 我们会慢慢发现邮件中出现某个关键词, 只能表示邮件有可能是垃圾邮件。 这个可能性如何度量呢? 用贝叶斯方法。 贝叶斯方法的思路属于逆向思维。 通常概率论解决的问题是“已知邮件是垃圾邮件,问各个单词出现在垃圾邮件中的概率”, 贝叶斯方法解决的问题是“已知邮件内容, 问当前邮件属于垃圾邮件的概率". 理解贝叶斯公式不难,其基础点有"条件概率", "联合概率"。 贝叶斯公式的推导也很简单: P(AB) = P(B)*P(A|B) P(AB) = P(A)*P(B|A) 有: P(B)*P(A|B)=P(A)*P(B|A) 所以 P(A|B) = P(A)*P(B|A) / P(B) 虽然机器学习最忌讳的就是套公式,但是为了方便理解, 我们先套个公式: P(垃圾邮件|邮件内容) 表示 ”在已知邮件内容,邮件属于垃圾邮件的概率“ P(垃圾邮件|邮件内容) = P(垃圾邮件) * P(邮件内容|垃圾邮件) / P(邮件内容) 等式右边的概率是可以通过样本计算出来的。 现在解决问题的方法有了,数学公式也有了, 是不是问题就解决了呢? 显然不是。我们只是完成了模型选择而已。通过《黑客与画家》看这个模型是如何落地的。 选择样本: 作者选取了4000封正常邮件和4000封垃圾邮件。 选择特征:字母、阿拉伯数字、破折号、撇号、美元符号作为“实义标识” 统计次数: 计算了每个实义标识在两个邮件组出现的次数 确定计算公式。 这里其实就是整篇文章的精华了。a. 作者没有完完全全套用贝叶斯公式; b. 作者分别在token和邮件两个维度用了贝叶斯思想。这才是难能可贵的。 特征选择: 作者选取了top15的特征, 而非邮件全部的token. 结果选取: 通常我们选取结果是以0.5为界,而作者以0.9为界。 如果说通常意义上的编程是一维的,那么机器学习的编程就是二维的。通常的工程问题是非黑即白,要么可用,要么是有Bug不可用。而机器学习在工程上的落地,更核心的关注点在于算法效果好不好和算法效果能不能更好。算法效果好不好,核心点在于数学模型, 其次在于怎么用好数学模型。 《黑客与画家》用简明的例子说明他是怎么用数学模型解决业务问题的。 引申一下:这个问题属于典型的二分类问题。像垃圾邮件,垃圾评论, 评论的情感判断, 是否目标用户,是否推荐用户... 很多问题都可以归类到二分类问题。如果把"垃圾邮件的识别"抽象到分类问题,整个解决问题的思路就又开阔了很多。 赞 收藏 评论 分享 举报 上一篇:ES聚合学习笔记之--HyperLogLog与BloomFilter 下一篇:ES学习笔记之-AvgAggregation的实现过程分析 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 python与朴素贝叶斯算法(附示例和代码) 朴素贝叶斯是一种基于贝叶斯定理的概率机器学习算法,用于各种分类任务。本文中,您将对朴素贝叶斯算法和所有必要的概念有一定的理解。1. 引言朴素贝叶斯是一种概率机器学习算法,可用于各种分类任务。典型应用包括过滤垃圾邮件、对文档进行分类、情绪预测等。它基于托马斯·贝叶斯(1702 年),因此得名。但为什么它被称为“朴素”?之所以使用该名称,是因为它假设进入模型的特征彼此独立。改变一个特征的值,不会直接影 朴素贝叶斯 条件概率 高斯朴素贝叶斯 拉普拉斯校正 模型训练 利用Python实现邮件发送 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是⼀一组⽤用于由源地址到⽬目的地址传送邮件的规则,由它来控制信件的中转⽅方式。python的smtplib提供了了⼀一种很⽅方便便的途径发送电⼦子邮件。它对smtp协议进⾏行行了了简单的封装。1. 准备用来发送邮件的邮箱账号准备好邮箱账号和邮箱登录授权码。不同类型邮箱获取授权码的方式大同小异,这儿以QQ邮箱 html 发送邮件 服务器 使用Graph API的Mail服务发送邮件和监控邮件的发送状态 这是我的第507篇原创文章,写于2024年1月30日。我先注册一个App,如下:然后我添加权限如下:记得需要Grant admin consent for $组织$。还要添加新的client secret。通过如下的请求可以获取到token:然后参考 user: sendMail 我们准备了如下请求来发送一封邮件:POST https://graph.microsof Office 365 Mail 贝叶斯统计与贝叶斯公式 逻辑推理的一个常见误区是以偏概全。一个典型例子是:许多渠道显示,地震发生时伴随的一个常见现象是动物园里的动物普遍地焦躁不安。于是,有些人就把动物焦躁不安作为地震预测的一个强有力的手段。更有甚者,一旦发现动物普遍地焦躁不安,直接就说,哪里要发生地震了。那,这样的推理具有什么样的缺陷呢?地震和动物焦躁不安都是不确定性事件。用A表示动物园里的动物普遍地焦躁不安,用B表示地震的发生。那们上述推理犯 人工智能 贝叶斯统计与贝叶斯公式 贝叶斯统计 贝叶斯公式 贝叶斯 贝叶斯 贝叶斯公式 商业 条件概率 后验概率 从朴素贝叶斯到贝叶斯网 回顾在文章《朴素贝叶斯》中,小夕为大家介绍了朴素贝叶斯模型的基本知识,并且得出了朴素贝叶斯是利用联合概率P(x1,x2,x3...xn,y)来确定某个样本为某个类别的概率,进而利用最大后验概率(MAP)来决策类别。也就是说,朴素贝叶斯的假设函数如下:其中,假设有c个类别,则i=1,2,...,c。(补充:argmax大家应该都熟悉了吧,意思就是返回使函数值最大的参数,这里的函数即P(X,yi),参 Java 朴素贝叶斯算法与贝叶斯估计 在看贝叶斯算法的相关内容时,你一定被突如其来的数学概念搞得头昏脑涨。比如极大似然估计(Maximum likelihood estimation ),极大后验概率估计(Maximum a posteriori estimation),先验概率(Prior probability),后验概率(Posteriori probability)等。所以后面我就本着先学会用,再谈概念的路线来进行。1. 朴素 算法 贝叶斯 贝叶斯分类器 朴素贝叶斯 先验概率 机器学习邮件分类 朴素贝叶斯 垃圾邮件 贝叶斯 七、什么是贝叶斯过滤器?垃圾邮件是一种令人头痛的顽症,困扰着所有的互联网用户。正确识别垃圾邮件的技术难度非常大。传统的垃圾邮件过滤方法,主要有"关键词法"和"校验码法"等。前者的过滤依据是特定的词语;后者则是计算邮件文本的校验码,再与已知的垃圾邮件进行对比。它们的识别效果都不理想,而且很容易规避。2002年,Paul Graham提出使用"贝叶斯推断"过滤垃圾邮件。他说,这样做的效果,好得不可思议 机器学习邮件分类 朴素贝叶斯 垃圾邮件 先验概率 封包 贝叶斯网络 动态贝叶斯 贝叶斯神经网络 贝叶斯网络实例 1. 贝叶斯网络 贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型。它用网络结构代表领域的基本因果知识。 贝叶斯网络中的节点表示命题(或随机变量),认为有依赖关系(或非条件独立)的命题用箭头来连接。 令G = (I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E代表有向连接线段的集合,且令X = (Xi), 贝叶斯网络 动态贝叶斯 贝叶斯神经网络 贝叶斯网络 结点 有向无环图 spark 贝叶斯 贝叶斯代码 #coding:utf-8from numpy import *#加载文档词向量数据以及相应文档类别,0表示正常言论,1表示侮辱性文字def loadDataSet(): postingList = [['my','dog','has','flea','problems','help','please'], ['maybe','not','tak spark 贝叶斯 条件概率 数据类型 词向量 贝叶斯 java 贝叶斯估计 朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法[1]。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯法实现简单,学习与预测的效率都很高,是一种常用的方法。4.2 朴素贝叶斯法的参数估计4.2.1 极大似然估计在朴素贝叶斯法中,学习意味着估计P(Y=ck 贝叶斯 java 机器学习 朴素贝叶斯 极大似然估计 条件概率 java贝叶斯 贝叶斯 map 零、前言:模型估计问题的总结模型分为确知模型与概率模型。确知模型的输出是一个确定的值,如:买x斤苹果,每斤苹果2元,总价值为y=2x;而概率模型输出的是自变量的概率,如:一个不均匀的四面体骰子,出现对应点数的概率和点数的大小相关,P(x)=y=0.1x。我们这里主要讨论概率模型在这里首先规定符号:假设是iid的一组抽样,并记作模型是对数据的描述,用一些参数和变量及它们的数学关系刻画,记作,其中X代 java贝叶斯 概率论 机器学习 概率模型 测试数据 nlp 贝叶斯 贝叶斯得分 刚看到一篇文章写到:编程语言流行指数(PYPL)排行榜近日公布了2019年2月份榜单。 在最新一期榜单上,Python的份额高达26.42%,稳居第一,并且猛增5.2%,同时成为增长势头最好的语言。而被挤到第二的Java,目前份额为21.2%,同比下跌1.3个百分点 。 很开心在循循渐进的道路上学习python,加油! 今天主要分享的是贝叶斯算法。此算法假设特征之间相关独立,因此其分类器的效率非常 nlp 贝叶斯 贝叶斯算法 多项式 数据 pyspark 贝叶斯 贝叶斯bp 一、贝叶斯公式朴素贝叶斯思想:对于待分类的项,求解在此项出现的条件下其他各个类别出现的概率,哪个最大,就认为此项属于哪个类别定义贝叶斯定理是关于随机事件 A 和 B 的条件概率: 其中P(A|B)是在 B 发生的情况下 A 发生的可能性。在贝叶斯定理中,每个名词都有约定俗成的名称:P(A)是 A 的先验概率,之所以称为“先验”是因为它不考虑任何 B 方面的因素。P(A|B)是已知 B 发生后 A pyspark 贝叶斯 条件概率 后验概率 先验概率 朴素贝叶斯与贝叶斯网络 贝叶斯分类是统计学分类方法。它们可以预测类成员关系的可能性,如给定样本属于一个特定类的概率。 贝叶斯定理是就是在给定的数据概率来表示未知的后验概率。比如已知某水果是红色的情况下,判断该水果有多大的概率是苹果,用数学符号表示就是(后验概率),其中X表示“这个水果是红色的”,H表示“这个水果是苹果... 数据 朴素贝叶斯 后验概率 结点 条件概率 贝叶斯深度学习 贝叶斯理解 参考博客:https://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html贝叶斯的介绍贝叶斯本质就一个条件概率公式P(A|B),也就是在B事件发生的情况下,A事件发生的概率。贝叶斯推断是一种统计学方法,用来估量统计量的某种性质。英国数学家托马斯·贝叶斯(Thomas Bayes)在1763年发表的一篇论文中,首先提 贝叶斯深度学习 机器学习 条件概率 先验概率 后验概率 贝叶斯 python 客户 贝叶斯实例 朴素贝叶斯算法(1)超详细的算法介绍朴素贝叶斯算法(2)案例实现github代码地址引言关于朴素贝叶斯算法的推导过程在朴素贝叶斯算法(1)超详细的算法介绍中详细说明了,这一篇文章用几个案例来深入了解下贝叶斯算法在三个模型中(高斯模型、多项式模型、伯努利模型)的运用。案例一:多项式模型特征属性是症状和职业,类别是疾病(包括感冒,过敏、脑震荡) 某个医院早上收了六个门诊病人,如下表:症状职业疾病打喷嚏 贝叶斯 python 客户 朴素贝叶斯算法(2)案例实现 朴素贝叶斯 取值 多项式 贝叶斯法则和贝叶斯公式 贝叶斯法则和贝叶斯公式 一、总结 一句话总结: 贝叶斯法则(定理):$$p ( A | B ) = \frac { P ( B | A ) \times p ( A ) } { P ( B )}$$ 全概率公式:$$P ( B ) = \sum _ { i = 1 } ^ { n } P ( M _ 概率论 贝叶斯公式 微信 人工智能 大数据 朴素贝叶斯 识别垃圾邮件 java 朴素贝叶斯算法改进 目前朴素贝叶斯的改进主要有以下四个方面:一.结构扩展(主要方向为探索属性间的关联关系) 朴素贝叶斯的星型结构: 如图1.1所示,我们有类别C,有A,B,C三个属性能决定C的类别,并且ABC都互相独立: & 朴素贝叶斯 识别垃圾邮件 java 算法 爬山法 朴素贝叶斯 粗糙集 贝叶斯网络 回归 贝叶斯回归代码 原理知道一百遍不如自己动手写一遍,当然,现在基本上不需要自己来写算法的底层code了,各路大神们已经为我等凡夫俗子写好了,直接调用就行。这里介绍在MATLAB中和Python中应用贝叶斯算法的小例子。一、 matlab实现朴素贝叶斯算法先load matlab中自带的数据集load fisheririsX = meas(:,3:4);Y = species;tabulate(Y)%返回概率表 贝叶斯网络 回归 朴素贝叶斯算法 matlab python 机器学习