朴素贝叶斯分类(上):如何让机器判断男女?

当你不能准确预知一个事物本质的时候,可以依靠和事物本质相关的事件来进行判断,如果事情发生的频次多,则证明这个属性更有可能存在

贝叶斯原理

贝叶斯解决一个叫“逆向概率”尝试解答在没有太多可靠证据的情况下,怎样做出更符合数学逻辑的推测。在现实生活中,我们很难知道事情的全貌,贝叶斯从实际场景出发,提出来一个问题:我们事先不知道袋子里面黑球和白球的比例,而是通过我们摸出来的球的颜色能判断出袋子里面黑白球的比例吗?

贝叶斯原理是建立在主观判断的情况下,先估计一个值,然后根据实际结果不断进行修改。

贝叶斯原理中的几个概念:

先验概率:

通过经验来判断事情发生的概率,比如说南方梅雨季节是6-7月,这是通过往年气候总结出来的经验,这时候下雨的概率比其他时间发生的概率高得多

后验概率:

是发生结果之后,推测原因的概率。比如某人查出来患有疾病,那么患病的原因可能是A,B,C,患病是因为原因A的概率就是后验概率,属于条件概率的一种

条件概率:

事件A在另外一个事件B已经发生条件下的发生概率,表示为P(A|B),比如在原因A的条件下,患病的概率就是条件概率

似然函数(likelihood function):

把概率模型的训练过程理解为求参数估计的过程,比如一个硬币在10次抛落中正面均朝上,那么这个硬币是均匀的可能性是多少?这个硬币均匀就是个参数,似然函数就是用来衡量这个模型的参数,似然就是可能性的意思,是关于统计参数的函数

贝叶斯原理就是求解后验概率,假设:A表示事件“测出为阳性”,B1表示”患病“,B2表示”没患病“,可以得出: 患病测出为阳性的概率是P(A|B1)=99.9%,没患病但测出为阳性的概率是P(A|B2)=0.1%,患病的概率是P(B1)=0.01%,没患病的概率P(B2)=99.99%,所以测出来为阳性,而患病的概率是P(B1,A)=P(B1)*P(A|B1)=0.01%*99.99%=0.00999%,这里的P(B1,A)是联合概率,可以求得P(B2,A)=P(B2) * P(A|B2)

想求检测为阳性的情况下患病的概率就是P(B1|A)=0.01%/0.01%+0.1%≈9%,检测出阳性但没有患病的概率是P(B2|A)=0.1%/0.01%+0.1%≈90.9% 下面的0.01%+0.1%是分母,称之为论据因子,P(B1)、 P(B2)是先验概率,知道了观测值、就是被检测出来是阳性的值来求患病的概率,就是求后验概率

得到贝叶斯公式:

朴素贝叶斯

一种简单的但极为强大的预测建模算法,因为它假设每个输入变量都是独立的,所以称之为朴素贝叶斯

朴素贝叶斯由两种类型的概率组成:

1.每个类别的概率P(Cj);

2.每个属性的条件概率P(Ai|Cj);

假设有7个棋子,其中3个是白色的,4个是黑色的,那么棋子是白色的概率是3/7,是黑色的是4/7,这个就是类别概率;把这7个棋子放到了两个盒子里面,其中盒子A中有2个白棋,2个黑棋,盒子B中有1个白棋,2个黑棋,那么在盒子A中抓到白棋的概率就是1/2,抓到黑棋的概率是1/2,这个就是条件概率,在某个条件下概率(比如在盒子A中抓棋子的概率)

在朴素贝叶斯中,要统计的是属性的条件概率,就是假设取出来的是白色的棋子,那么它属于盒子A的概率是2/3

(ps: 这里我们需要运用贝叶斯公式即:
P(Bi|A)=P(Bi)P(A|Bi) / (P(B1)*P(A|B1)+P(B2)*P(A|B2))
假设A代表白棋子,B1代表A盒,B2代表B盒。带入贝叶斯公式,我们可以得到:
P(B1|A)=P(B1)P(A|B1) / (P(B1)*P(A|B1)+P(B2)*P(A|B2))=(4/7 * 1/2) / ( 4/7 * 1/2 + 3/7 * 1/3) = 2/3
其中P(B1)代表A盒的概率,7个棋子,A盒有4个,所以P(B1)=4/7。
P(B2)代表B盒的概率,7个棋子,B盒有3个,所以P(B2)=3/7。
最终求得取出来的是白色的棋子,那么它属于 A盒的概率P(B1|A)= 2/3。 )

为了训练朴素贝叶斯模型,需要先给出训练数据以及这些数据对应的分类,条件概率和类别概率都可以用给出的训练数据中计算出来,一旦计算出来概率模型就可以使用贝叶斯原理对新数据进行预测

朴素贝叶斯分类工作原理

判断性别的过程是一个分类的过程,根据以往的经验,通常从身高、体重、鞋码、头发长短、服饰、声音等角度去判断,“经验”就是一个训练好了的关于性别判断的模型,数据就是日常中遇到的各式各样的人,以及这些人实际的性别数据

离散数据案例

遇到的数据分为两种,一种是离散的,一种是连续的,离散就是不连续的意思,有明确的边界,比如整数1,2,3就是离散的,而1到3中间的任何数,就是连续数据,可以取这个区间里任何数值

下面数据为例子,根据之前的经验数据,给一个新的数据:身高“高”,体重“中”,鞋码“中”判断男女

先确定一共有3个属性,用A代表属性,用A1,A2,A3分别为身高=高,体重=中,鞋码=中,一共有两个类别,用C表示,C1 、C2为男女,在未知情况下用Cj表示,求在A1,A2,A3的属性下,Cj的概率,用条件概率表示就是P(Cj|A1A2A3),因为一共有2个类别,只需要求得P(C1|A1A2A3)和P(C2|A1A2A3)的概率即可,然后比较哪个分类的可能性大,就是哪个分类

因为P(A1A2A3)是固定的,要寻找使得P(Cj|A1A2A3)的最大值就等价于求P(A1A2A3|Cj)P(Cj)的最大值,假定Ai之间是相互独立的,那么:P(A1A2A3|Cj) = P(A1|Cj)P(A2|Cj)P(A3|Cj) ,需要从Ai和Cj中计算出P(Ai|Cj)的概率,带入公式得P(A1A2A3|Cj),最后找到P(A1A2A3|Cj)最大的类别Cj

P(A1A2A3|C1)P(C1) > P(A1A2A3|C2)P(C2) 所以是C1类别,是男性

连续数据案例

实际生活中得到的是连续数值,比如

给你一个新数据,身高180、体重120、鞋码41,请问该人是男是女?

由于身高、体重、鞋码都是连续变量,不能采用离散变量的方法计算概率,而且样本太少,无法分成区间计算,这时候假设身高、体重、鞋码都是正态分布,通过样本计算出均值和方差,即得出正态分布的密度函数,有了密度函数,把值代入,算出某一点的密度函数的值,比如男性的身高均值179.5、标准差为3.697的正态分布,所以男性的身高为180的概率为0.1069

如何得出?可以使用Excel的NORMDIST(x,mean,standard_dev,cumulative)函数,有四个参数:

  • x:正态分布中,需要计算的数值
  • mean:正态分布的平均值
  • standard_dev:正态分布的标准差
  • cumulative:取值为逻辑值,即false 或true,决定了函数的形式,为TRUE的时候函数结果为累积分布;为false的时候,结果为概率密度

使用NORMDIST(180,179.5,3.697,0)=0.1069,同时计算得男性体重为120的概率为0.000382324,男性鞋码为41的概率是0.120304111

所以P(A1A2A3|C1)=4.9169e-6,该人为女的可能性为:P(A1A2A3|C2)=2.7244e-9

所以该数据为男的概率大于分类为女的概率

朴素贝叶斯分类器工作流程

常用于文本分类,尤其是对于英文来说效果很好,用于垃圾文本过滤、情感预测、推荐系统等,流程为:

第一阶段:准备阶段

需要确定特征属性,比如上文的“身高”“体重”“鞋码”等,并对每个特征属性进行适当划分,然后由人工对一部分数据进行分类,形成训练样本

分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定

第二阶段:训练阶段

生成分类器,工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率,输入是特征属性和训练样本,输出是分类器

第三阶段:应用阶段

使用分类器对新数据进行分类,输入是分类器和新数据,输出是新数据的分类结果

1.离散型变量和连续变量在朴素贝叶斯模型中的处理有什么差别?

离散型变量可以直接计算概率,连续型变量需要看成正态分布然后计算期望和标准差来计算概率

2.如果你女友在你的手机里面发现了你和其他女人的暧昧短信,于是她开始思考3个概率问题,你来判断下面3个概率分别属于哪种概率:

  • 你在没有任何情况下,出轨的概率
  • 如果你出轨了,那么你的手机里有暧昧短信的概率
  • 在你的手机里发现了暧昧短信,认为你出轨的概率

三种概率分别属于先验概率、后验概率和条件概率的哪一种?

2.暧昧短信的出现为观测变量,在出轨的条件下求出现暧昧短信的概率,即在隐变量的条件下计算对应观测变量的概率为条件概率

的概率

  • 如果你出轨了,那么你的手机里有暧昧短信的概率
  • 在你的手机里发现了暧昧短信,认为你出轨的概率

三种概率分别属于先验概率、后验概率和条件概率的哪一种?

2.暧昧短信的出现为观测变量,在出轨的条件下求出现暧昧短信的概率,即在隐变量的条件下计算对应观测变量的概率为条件概率

朴素贝叶斯分类(上):如何让机器判断男女?相关推荐

  1. 2021-06-2120丨朴素贝叶斯分类(上):如何让机器判断男女?

    很多人都听说过贝叶斯原理,在哪听说过?基本上是在学概率统计的时候知道的.有些人可能会说,我记不住这些概率论的公式,没关系,我尽量用通俗易懂的语言进行讲解. 贝叶斯原理是英国数学家托马斯·贝叶斯提出的. ...

  2. 朴素贝叶斯分类—关于SNS社区账号检测—关于判断概率计算公式

    由于研究需要研究一下贝叶斯网络的问题,在搜素相关资料的时候,发现研究贝叶斯网络都会先认识了解一下朴素贝叶斯,网络上很经典的例子是依托:朴素贝叶斯分类实例:检测SNS社区中不真实账号 展开的,原始帖子链 ...

  3. 机器学习--用朴素贝叶斯分类法辨别男女声音

    和前面介绍到的kNN,决策树一样,贝叶斯分类法也是机器学习中常用的分类方法.贝叶斯分类法主要以概率论中贝叶斯定理为分类依据,具有很广泛的应用.本文通过一个完整的例子,来介绍如何用朴素贝叶斯分类法实现分 ...

  4. 朴素贝叶斯分类器_基于环境光补偿二进制图像对架空复合绝缘子进行疏水性判断的朴素贝叶斯分类器...

    关注高电压技术,关注学科发展 内容整理自<High Voltage>2019年第4卷第4期 由Rajamohan Jayabal :Vijayarekha Karuppiyan ; Rak ...

  5. 项目:用朴素贝叶斯分类,来判断文本判断政府工作报告 OR 哈利波特小说

    目的: 用朴素贝叶斯分类,来判断文本是属于政府工作报告 OR 哈利波特小说. 数据来源: 来自于互联网下载. 政府工作报告放在spam文件夹中,分类为1:哈利波特小说放在ham文件夹中,分类为0.测试 ...

  6. 用朴素贝叶斯分类模型判断病人是否感染幽门螺杆菌(Python实现)

    注:如果您需要本文的数据集,请私信我的csdn账户 一.算法说明 朴素贝叶斯是贝叶斯模型中最简单的一种,其核心算法是贝叶斯公式. 朴素贝叶斯分类模型将问题分为特征变量构成的向量和目标变量构成的向量,假 ...

  7. 机器学习(十一)-Naïve Bayes Classifier朴素贝叶斯分类器及Python实现

    原创不易,转载前请注明博主的链接地址:Blessy_Zhu https://blog.csdn.net/weixin_42555080 本次代码的环境: 运行平台: Windows Python版本: ...

  8. 机器学习十大经典算法之朴素贝叶斯分类

    贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法. 分类问题 从数学角度来说,分类问题可做如下定义:已 ...

  9. python推荐系统算法朴素贝叶斯_机器学习经典算法之朴素贝叶斯分类

    很多人都听说过贝叶斯原理,在哪听说过?基本上是在学概率统计的时候知道的.有些人可能会说,我记不住这些概率论的公式,没关系,我尽量用通俗易懂的语言进行讲解. 贝叶斯原理是英国数学家托马斯·贝叶斯提出的. ...

最新文章

  1. java求质数为什么%3ci 2_C语言程序设计部分习题及例题参考程序
  2. TT和LG编程设计模式之代理
  3. android 获取lanucher 列表
  4. java怎么接收前端请求_前端json post 请求 后端怎么接收
  5. 一张图明白jenkins和docker作用
  6. c语言色电阻环编程,c 语言的计算(电阻)请问要如何用C计算电阻的三色环如~~宗 黑 红 ==1K#include #include #in...
  7. Python每输出n个换行
  8. 模拟人生畅玩版正在连接至服务器,模拟人生™:畅玩版无法连接服务器如何解决...
  9. 计算机网络第七版--概述知识点总结
  10. Linux入门(14)——系统启动修复
  11. 从阿西莫夫机器人三大定律 谈起
  12. 女人是这样哄的,学以致用
  13. ASR6601:国产M4内核LoRa SoC芯片替代SX1262/SX1278
  14. 软件需求工程一些概念
  15. [Linux] date命令
  16. 数据结构:若借助栈由输入序列1,2…n得到的输出序列为p1p2…pn(它是输入序列的一个排列),证明在输出序列中不可能出现这样的情形:存在着i<j<k,使pj<pk<pi
  17. php做照片墙,照片墙作业练习
  18. 2013年上半年系统集成项目管理工程师(软考)培训视频、资料、历年试题、电子书教程
  19. 简易方法提高手机3G上网速度(2G转3G)
  20. soft-attention (SENet、BAM、CBAM)

热门文章

  1. 双11别忘了把EasyRecovery购了!
  2. 【android开发】修改主题theme(系统自带样式总结)
  3. php遍历语句_php遍历是什么意思
  4. Dell网卡升级驱动步骤
  5. Qt设置半透明的方法
  6. js多方框输入密码_js仿支付宝多方框输入支付密码效果
  7. tampermonkey使用直接获取百度云盘下载地址
  8. android我的世界连接pc,我的世界各平台联机方法 手机和电脑等联机教程_图文攻略_高分攻略_百度攻略...
  9. 夫妻创业开米粉店,月收入可达10万元
  10. typedef struct student 和 struct student 的区别