机器学习笔记-Task02-朴素贝叶斯

1.贝叶斯原理

贝叶斯原理是一个数学基础,人们利用该原理,设计出了贝叶斯分类器,而朴素贝叶斯是这类分类器中的一种形式。三者之间的关系,如下图所示。
摘自AI蜗牛车
  因此为了弄懂朴素贝叶斯,需要从贝叶斯原理入手。

1.1相关概念

贝叶斯原理是为求解“逆向概率”问题而生的。为了介绍“逆向概率”,我们先来看看与之相对立的“正向概率”。

1.1.1正向概率

我们在高中在学概率时,都做过计算从盒子中任意取出一个球,是红球或黑球的概率。【一个袋子里5个球, 3个黑球,2个白球,我随便从里面拿出一个,问,是黑球的概率?。这时候,立即答:3/5。】该问题,就是一个正向概率问题。是站在上帝视角,了解问题的全貌之后作出的判断。

1.1.2逆向概率

But, 如果我们事先只知道,袋子里不是黑球就是白球,并不知道各自有多少个,而是通过我们摸出的球的颜色,我们能判断出袋子里黑白球各自多少个来吗? 这就是逆向概率了。

1.2 具体例子加深理解

理解了上述概念,那么接下来通过一个具体的例子,通过计算过程,帮助我们进一步理解贝叶斯原理是如何求解“逆向概率”的。
【以下例子,摘自AI蜗牛车“【白话机器学习】算法理论+实战之朴素贝叶斯”】
在这里插入图片描述
但是,如果换一下问题:你在校园里随机游走,遇到了N个长裤的人(仍然看不清性别), 问,这N个人里面有多少个男生,多少个女生

学过数学的都知道,可以计算出这个学校里有多少穿长裤的,然后在穿长裤的同学当中,再计算出这里面有多少女生?多少男生就OK啦。

让我们开始动起笔来一起计算吧:
假设,学校里面有M个人。
则:
1.男生人数=MP(男),女生人数=MP(女)
2.计算一下男生里面有多少穿长裤 的,女生里面有多少穿长裤的。
(1)男生里面穿长裤的人数=男生人数xP(穿长裤|男生)【这是一个条件概率,哈哈,又是一个知识点,其读作:在该同学是男生的情况下,他穿长裤 概率,P(A|B),即在B发生的条件下,A发生的概率】,从问题中可知:P(穿长裤|男生)=100%
(2)同理,女生里面穿长裤的人数= 女生人数*P(穿长裤|女生),由题干可知,P(穿长裤|女生)=50%。
3.计算穿长裤的总人数
穿长裤的总人数=男生里面穿长裤的人数+女生里面穿长裤的人数
4.计算穿长裤的人数中,男女生的比例
穿长裤的同学中,男生的比例 =P(男|穿长裤)= 男 生 里 面 穿 长 裤 的 人 数 穿 长 裤 的 总 人 数 \frac{男生里面穿长裤的人数}{穿长裤的总人数} 穿穿= P ( 男 ) ∗ P ( 穿 长 裤 ∣ 男 生 ) P ( 穿 长 裤 ∣ 男 生 ) + P ( 穿 长 裤 ∣ 女 生 ) \frac{P(男)*P(穿长裤|男生)}{P(穿长裤|男生)+P(穿长裤|女生)} P(穿)+P(穿)PP(穿)
【M可以约掉】

1.2.1 先验概率

过经验来判断事情发生的概率就是先验概率。比如上面的男生60%, 女生40%。这就是个事实,不用任何条件。再比如,南方的梅雨季是6-7月,就是通过往年的气候总结出来的经验,这个时候下雨的概率比其他时间高出很多,这些都是先验概率。

1.2.2 条件概率

事件 A 在另外一个事件 B 已经发生条件下的发生概率,表示为 P(A|B),读作“在 B 发生的条件下 A 发生的概率”。比如上面的男生里面,穿长裤的P(长裤 | 男),女生里面,穿长裤的人P(长裤 | 女)

1.2.3 后验概率

后验概率就是发生结果之后,推测原因的概率。比如上面的我看到了穿长裤的人, 我推测这是个男人P(男 | 长裤)还是个女人P(女 | 长裤)的概率。它属于条件概率的一种。

这里的P(男), P(女)就是先验概率;P(长裤 | 男),P(长裤 | 女)就是条件概率;P(男 | 长裤),P(女 | 长裤)就是后验概率。

上面长裤和男女可以指代一切东西,令长裤 = A, 男=B1, 女=B2, 那么整理一下上面的公式:
在这里插入图片描述
这个就是伟大的贝叶斯公式,更一般的形式下:在这里插入图片描述

2.朴素贝叶斯

2.1何为“朴素”

朴素贝叶斯中的朴素,代表的是该算法存在的前提,即假设。它假设每个输入变量是独立的。这是一个强硬的假设,实际情况并不一定,但是这项技术对于绝大部分的复杂问题仍然非常有效。

这里的输入变量就类似与我们上面的性别特征,因为实际问题里面,可能不仅只有性别这一列特征,可能还会有什么身高啊,体重啊,这些特征,基于这些特征再利用贝叶斯公式去做分类问题的时候,就涉及很多个输入特征了。
朴素贝叶斯做的就是,假设这些身高,体重,性别这些特征之间是没有关系的,互相不影响。那么我们算同时符合这三个特征概率的时候,就可以分开算了 P ( A B C ) = P ( A ) ∗ P ( B ) ∗ P ( C ) P(ABC) = P(A)* P(B)* P(C) P(ABC)=P(A)P(B)P(C就是这个道理了

2.2朴素贝叶斯算法

改模型主要由两类概率组成:
1.每个类别的概率 P ( y ) P(y) P(y),即实例中的男女生概率;
2.每个属性的条件概率 P ( x i ∣ y i ) P(xi|yi) P(xiyi),即男生穿长裤的概率等。

由贝叶斯定理可知,如果需要确定属于何种类别,则需要知道如下后验概率。

在这里插入图片描述
因为朴素贝叶斯算法的条件独立性假设,所以
在这里插入图片描述
对全部i化简得:
在这里插入图片描述
因为 P ( x 1 , . . . , x n ) P(x1,...,xn) P(x1,...,xn)是一个给定的输入常数,即用户属于一组给定的属性,想通过该算法判断其到底属于哪一类。因此后验概率( P ( y ∣ x 1 , . . . , x n ) P(y|x1,...,xn) P(yx1,...,xn))的大小与 P ( y ) ∏ i = 1 n P ( x i ∣ y ) P(y)\prod _{i=1}^{n}P(xi|y) P(y)i=1nP(xiy)呈正比,即:
在这里插入图片描述
因此,我们的分类规则如下:
在这里插入图片描述
使得 P ( y ) ∏ i = 1 n P ( x i ∣ y ) P(y)\prod _{i=1}^{n}P(xi|y) P(y)i=1nP(xiy)值最大的那一类,为最终的归属类别。

2.3 朴素贝叶斯算法的工作过程

1.从训练数据中,利用极大似然估计得到 P ( y ) P(y) P(y) P ( x i ∣ y ) P(xi|y) P(xiy)

2.计算 P ( y ) ∏ i = 1 n P ( x i ∣ y ) P(y)\prod _{i=1}^{n}P(xi|y) P(y)i=1nP(xiy)

2.4 朴素贝叶斯算法的分类

1.高斯朴素贝叶斯

其假设特征的概率服从高斯分布
在这里插入图片描述
其中:
数学期望(mean): μ \mu μ

方差: σ 2 = ∑ ( X − μ ) 2 N \sigma^2=\frac{\sum(X-\mu)^2}{N} σ2=N(Xμ)2

【应用】主要用来处理特征量为连续变量的问题。

2.多项式朴素贝叶斯

主要用来处理离散变量问题,如文本分类。
注意
实际应用过程中,因为训练样本的原因,可能会出现零概率问题。
概率问题,就是在计算实例的概率时,如果某个量x,在观察样本库(训练集)中没有出现过,会导致整个实例的概率结果是0.

在实际的模型训练过程中,可能会出现零概率问题(因为先验概率和反条件概率是根据训练样本算的,但训练样本数量不是无限的,所以可能出现有的情况在实际中存在,但在训练样本中没有,导致为0的概率值,影响后面后验概率的计算),即便可以继续增加训练数据量,但对于有些问题来说,数据怎么增多也是不够的。这时我们说模型是不平滑的,我们要使之平滑,一种方法就是将训练(学习)的方法换成贝叶斯估计。
也可以对其进行拉普拉斯平滑处理,
在这里插入图片描述
其中,N表示数据集中分类标签, NiNi 表示第 ii 个属性的取值类别数,|D|样本容量, |Dc||Dc| 表示类别c的记录数量, |Dxi|c||Dxi|c| 表示类别c中第i个属性取值为 xixi 的记录数量。

将这两个式子应用到上面的计算过程中,就可以弥补朴素贝叶斯算法的这一缺陷问题

3.伯努利朴素贝叶斯算法

特征变量是布尔变量,符合 0/1 分布,在文档分类中特征是单词是否出现。
伯努利朴素贝叶斯是以文件为粒度,如果该单词在某文件中出现了即为 1,否则为 0。而多项式朴素贝叶斯是以单词为粒度,会计算在某个文件中的具体次数。而高斯朴素贝叶斯适合处理特征变量是连续变量,且符合正态分布(高斯分布)的情况。比如身高、体重这种自然界的现象就比较适合用高斯朴素贝叶斯来处理。而文本分类是使用多项式朴素贝叶斯或者伯努利朴素贝叶斯

参考资料

1.AI蜗牛车的【白话机器学习】算法理论+实战之朴素贝叶斯https://mp.weixin.qq.com/s/IXpv5QSoHM8Bx4ZQgYbm3g
2.Sklearn官方学习指南
https://scikit-learn.org/stable/modules/naive_bayes.html
3.黄博士的Github-李航04.朴素贝叶斯
https://github.com/fengdu78/lihang-code/blob/master/第04章 朴素贝叶斯/4.NaiveBayes.ipynb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值