朴素贝叶斯法

文章目录

贝叶斯定理

前置知识:条件概率、全概率、贝叶斯公式

推荐视频,看完视频后搜索博客了解先验概率后验概率

这里简单记录一下

贝叶斯定理:已知结果找原因/过程

已知事件B发生,求事件 A i A_i Ai是原因的概率 P ( A i ∣ B ) = P ( A i ) P ( B ∣ A i ) P ( B ) = P ( A i B ) B 的全概率公式 = P ( 类别 ∣ 特征 ) = P ( 特征 ∣ 类别 ) P ( 类别 ) P ( 特征 ) P(Ai|B) = \frac{P(Ai)P(B|Ai)}{P(B)} = \frac{P(A_iB)}{B的全概率公式}=P(类别|特征) = \frac{P(特征|类别)P{(类别)}}{P(特征)} P(Ai∣B)=P(B)P(Ai)P(B∣Ai)=B的全概率公式P(AiB)=P(类别∣特征)=P(特征)P(特征∣类别)P(类别)

通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A(发生)的条件下的概率是不一样的。

这两者是有确定的关系的,贝叶斯定理就是这种关系的陈述。

每个概率都有特定的名称

  1. P ( A i ) P(A_i) P(Ai)是A的先验概率:基于统计的概率,是基于以往历史经验和分析得到的结果。先验不考虑B方面的因素下,人们对 A i Ai Ai发生概率的理解

  2. P ( A i ∣ B ) P(Ai|B) P(Ai∣B)是A的后验概率:已知事情B发生了,我们对 A i A_i Ai发生的概率有了新的认识,其概率由 P ( A i ) P(A_i) P(Ai)变成了 P ( A i ∣ B ) P(A_i|B) P(Ai∣B)。 => 后验概率的计算要以先验概率为基础

朴素贝叶斯法的学习与分类

条件独立假设

朴素贝叶斯:朴素贝叶斯方法是基于贝叶斯定理和特征条件独立假设的分类方法。

条件独立假设:条件独立性假设就是各个特征之间互不影响,每个特征都是条件独立的。这一假设使得朴素贝叶斯法变得简单,但是有时候会牺牲一定的分类准确率。

条件独立假设的公式

X表示实例集合,Y表示类标记集合。

x是一个有n个特征的实例。

X ( j ) X^{(j)} X(j)表示某个实例的第j个特征。

假设特征独立公式

P ( X = x ∣ Y = c k ) = P ( X 1 = x 1 , . . . , X n = x n ∣ Y = c k ) = p ( X 1 = x 1 ∣ Y = c k ) ∗ . . . ∗ p ( , X n ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k)=P(X^1=x^1,...,X^n=x^n|Y=c_k)=p(X^1=x^1|Y=c_k)*...*p(,X^n|Y=c_k)=\prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=x∣Y=ck)=P(X1=x1,...,Xn=xn∣Y=ck)=p(X1=x1∣Y=ck)∗...∗p(,Xn∣Y=ck)=∏j=1nP(Xj=xj∣Y=ck)

朴素贝叶斯的后验概率最大化准则

朴素贝叶斯的基本公式

1.后验概率根据贝叶斯定理计算

P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) P ( X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) ) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{P(X=x)}=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_k P(X=x|Y=c_k)P(Y=c_k))} P(Y=ck∣X=x)=P(X=x)P(X=x∣Y=ck)P(Y=ck)=∑kP(X=x∣Y=ck)P(Y=ck))P(X=x∣Y=ck)P(Y=ck)

2.将条件独立假设公式代入

朴素贝叶斯分类的核心思想 :对于给出的待分类样本,求解在此样本出现的条件下各个类别出现的概率,哪个最大 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck∣X=x),就认为此待分类样本属于哪个类别。 => 分类准则:后验概率最大化

1.朴素贝叶斯分类器就是取后验概率最大时的分类,所以我们需要比较不同分类(k=1,2,...,k)时 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck∣X=x)的概率大小

2.不同贝叶斯分类的分母 P ( X = x ) P(X=x) P(X=x)都是一样,所以可以简化只比较分子的大小

y = f ( x ) = a r g max ⁡ c k P ( Y = c k ) ∏ j P ( X j = x j ∣ Y = c k ) y=f(x)=arg \max_{c_k}P(Y=c_k)\prod_{j} P(X^{j}=x^{j}|Y=c_k) y=f(x)=argmaxckP(Y=ck)∏jP(Xj=xj∣Y=ck)

argmax、argmin的说明

argmax 表示 后面的表达式取最大值的时候,返回自变量 C k C_k Ck的取值 。

朴素贝叶斯法将样本分到后验概率最大的类 ,等价于此时期望风险最小化。

证明 后验概率最大化 <=> 期望风险最小化

假设选择0-1损失函数,其中f(X)为分类决策函数 。与真实类别Y比较,相等即没有损失,不相等则损失为1。

L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X))= \begin{cases} 1, Y\neq{f(X)} \\ 0 ,Y=f(X) \end{cases} L(Y,f(X))={1,Y=f(X)0,Y=f(X)

期望风险:对损失函数 L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X))求期望 R ( f ) = E [ L ( Y , f ( X ) ) ] R(f)=E[L(Y,f(X))] R(f)=E[L(Y,f(X))]

期望的定义为:值出现的概率*具体的值 累计值,在这里就是损失函数值*联合概率 累计值

套入二维随机变量函数的期望公式

期望风险最小化可以转换为以下式子:

m i n ∑ Y L ( Y , f ( X ) ) P ( y ∣ x ) = m i n ∑ k = 1 k L ( C k , f ( X ) ) P ( C k ∣ X ) min \sum_Y L(Y,f(X))P(y|x) = min \sum_{k=1}^kL(C_k,f(X))P(C_k|X) min∑YL(Y,f(X))P(y∣x)=min∑k=1kL(Ck,f(X))P(Ck∣X)

对于一个确定输入的X=x,判断输出类y为哪一个时,损失期望最小。f(x)对应的类y需要满足的条件是使得期望风险最小化。

f ( x ) = a r g min ⁡ y ∈ Y ∑ k = 1 k L ( C k , f ( x ) ) P ( C k ∣ X = x ) f(x) = arg \min_{y \in Y} \sum_{k=1}^kL(C_k,f(x))P(C_k|X=x) f(x)=argminy∈Y∑k=1kL(Ck,f(x))P(Ck∣X=x)

C k C_k Ck为输出空间中的某一个类。如果 C k = y C_k = y Ck=y,则说明此时损失函数的值为0,因此在累加的过程中不用计算(0乘任何数结果为0),换句话说,只累加损失值为1的情况。

f ( x ) = a r g min ⁡ y ∈ Y ∑ k = 1 k P ( y ≠ C k ∣ X = x ) = a r g m i n y ∈ Y ∑ k = 1 k ( 1 − P ( y = C k ∣ X = x ) ) = a r g max ⁡ y ∈ Y P ( y = C k ∣ X = x ) f(x) = arg \min_{y \in Y} \sum_{k=1}^kP(y\neq{C_k}|X=x) = arg min_{y \in Y} \sum_{k=1}^k(1-P(y={C_k}|X=x)) = arg \max_{y\in Y}P(y=C_k|X=x) f(x)=argminy∈Y∑k=1kP(y=Ck∣X=x)=argminy∈Y∑k=1k(1−P(y=Ck∣X=x))=argmaxy∈YP(y=Ck∣X=x)

根据期望风险最小化 => 得到后验概率最大化

朴素贝叶斯法的参数估计

极大似然估计

在朴素贝叶斯中,学习意味着根据训练集估计先验概率 P ( Y = c k ) P(Y=c_k) P(Y=ck)和条件概率 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=x∣Y=ck)。

根据条件独立假设公式,条件概率 P ( X = x ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k) = \prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=x∣Y=ck)=∏j=1nP(Xj=xj∣Y=ck)

先验概率 P ( Y = c k ) P(Y=c_k) P(Y=ck)的极大似然估计: 属于 c k c_k ck的实例占数据集总数N的比例

P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N} P(Y=ck)=N∑i=1NI(yi=ck) k = 1 , 2 , . . , K k=1,2,..,K k=1,2,..,K

I是指示函数,括号里成立取值1,不成立取值0

条件概率 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=x∣Y=ck)的极大似然估计:

假设第j个特征 x ( j ) x^{(j)} x(j)可能取值的集合为 { a j 1 , a j 2 , . . . , a j S j } \{a_{j1},a_{j2},...,a_{jS_{j}}\} {aj1,aj2,...,ajSj},第1个特征有 S 1 S_1 S1个选择,第n个特征有 S n S_n Sn个选择。

第j个特征取 a j l a_{jl} ajl的条件概率 P ( X j = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) P(X^{j}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)} P(Xj=ajl∣Y=ck)=∑i=1NI(yi=ck)∑i=1NI(xi(j)=ajl,yi=ck) j = 1 , 2 , . . . , n ; l = 1 , 2 , . . . , S j ; k = 1 , 2 , . . . , K j=1,2,...,n; l=1,2,...,S_j;k=1,2,...,K j=1,2,...,n;l=1,2,...,Sj;k=1,2,...,K

这里每一个特征的条件概率都需要计算,一共会计算 K ∗ S 1 ∗ . . . . ∗ S n K*S_1*....*S_n K∗S1∗....∗Sn次。

概率的核心 = n条件/n总,总个数指类别是 c k c_k ck的实例个数,符合条件的个数指类别是 c k c_k ck和第j个特征是 a j l a_{jl} ajl同时成立的实例个数。

朴素贝叶斯的学习与分类算法

通过学习训练数据集得到模型(得到先验概率与条件概率 ),计算后验概率分布 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck∣X=x),将后验概率最大的类作为x实例的类输出。

输入:训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},实例 x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) x=(x^{(1)},x^{(2)},...,x^{(n)}) x=(x(1),x(2),...,x(n))

输出:实例x所属类别y

第一步:通过学习训练数据集通过极大似然法得到模型

第二步:计算输入实例x的先验概率与条件概率,计算其属于每一个类别的后验概率,选出后验概率最大的类。

例题

由下标的训练数据学习一个朴素贝叶斯分类器,并确定 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T的类标记 y y y。表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)为特征,取值的集合分别为 A 1 = { 1 , 2 , 3 } , A 2 = { S , M , l } A_1=\{1,2,3\},A_2=\{S,M,l\} A1={1,2,3},A2={S,M,l},Y为类标记, Y ∈ C = { 1 , − 1 } Y \in C=\{1,-1\} Y∈C={1,−1}。

解:本题需要比较后验概率 P ( Y = 1 ∣ X = x ) P(Y=1|X=x) P(Y=1∣X=x)和 P ( Y = − 1 ∣ X = x ) P(Y=-1|X=x) P(Y=−1∣X=x)的概率,这两个概率的分母相同,我们只需要比较分子 P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1) P(Y=1)P(X(1)=2∣Y=1)P(X(2)=S∣Y=1)和 P ( Y = − 1 ) P ( X ( 1 ) = 2 ∣ Y = − 1 ) P ( X ( 2 ) = S ∣ Y = − 1 ) P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1) P(Y=−1)P(X(1)=2∣Y=−1)P(X(2)=S∣Y=−1)的概率

①先计算先验概率与条件概率

②计算后验概率的分子

P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) = 1 45 P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{1}{45} P(Y=1)P(X(1)=2∣Y=1)P(X(2)=S∣Y=1)=451

P ( Y = − 1 ) P ( X ( 1 ) = 2 ∣ Y = − 1 ) P ( X ( 2 ) = S ∣ Y = − 1 ) = 1 15 P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{1}{15} P(Y=−1)P(X(1)=2∣Y=−1)P(X(2)=S∣Y=−1)=151

③比较选更大的值

实例点x的类标记为 y = − 1 y=-1 y=−1

贝叶斯估计

问题: 极大似然估计可能会出现索要估计的概率值为0(0乘任何值都等于0),这会影响后验概率的计算,使分类产生误差。

案例: 假设数据集中全是女性,那么数据集中女性的概率为1。并不是代表就没有男性,只是恰好数据集中没有。

解决方法:采用贝叶斯估计

分子加 λ \lambda λ的原因是避免值为0,分母加 K λ K\lambda Kλ( c k c_k ck的取值有K种)的原因是保证先验概率和 ∑ k = 1 k P λ ( Y = c k ) = 1 \sum_{k=1}^kP_\lambda (Y=c_k)=1 ∑k=1kPλ(Y=ck)=1(随机变量Y的概率分布)。

条件概率同上。

习题

按照拉普拉斯平滑估计( λ = 1 \lambda=1 λ=1),确定 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T的类标记 y y y。表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)为特征,取值的集合分别为 A 1 = { 1 , 2 , 3 } , A 2 = { S , M , l } A_1=\{1,2,3\},A_2=\{S,M,l\} A1={1,2,3},A2={S,M,l},Y为类标记, Y ∈ C = { 1 , − 1 } Y \in C=\{1,-1\} Y∈C={1,−1}。

①先计算先验概率与条件概率

②计算后验概率的分子

P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) = 5 153 P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{5}{153} P(Y=1)P(X(1)=2∣Y=1)P(X(2)=S∣Y=1)=1535

P ( Y = − 1 ) P ( X ( 1 ) = 2 ∣ Y = − 1 ) P ( X ( 2 ) = S ∣ Y = − 1 ) = 28 459 P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{28}{459} P(Y=−1)P(X(1)=2∣Y=−1)P(X(2)=S∣Y=−1)=45928

③比较选更大的值

实例点x的类标记为 y = − 1 y=-1 y=−1

总结

  • 朴素贝叶斯法是典型的生成学习方法。

生成方法由训练数据学习联合概率分布 P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y)=P(Y)P(X|Y) P(X,Y)=P(Y)P(X∣Y),具体来说,利用训练数据学习先验概率 P ( Y ) P(Y) P(Y)与条件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y),然后学习后验概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)。

概率估计方法可以是极大似然估计或贝叶斯估计

  • 朴素贝叶斯利用贝叶斯定理与学习到的联合概率模型进行分类预测。

P ( Y ∣ X ) = P ( X , Y ) P ( X ) = P ( Y ) P ( X ∣ Y ) ∑ Y P ( Y ) P ( X ∣ Y ) P(Y|X)=\frac{P(X,Y)}{P(X)}=\frac{P(Y)P(X|Y)}{\sum_YP(Y)P(X|Y)} P(Y∣X)=P(X)P(X,Y)=∑YP(Y)P(X∣Y)P(Y)P(X∣Y)

将输入的x分到后验概率最大的类y

y = a r g max ⁡ c k P ( Y = c k ) ∏ j P ( X j = x j ∣ Y = c k ) y=arg \max_{c_k}P(Y=c_k)\prod_{j} P(X^{j}=x^{j}|Y=c_k) y=argmaxckP(Y=ck)∏jP(Xj=xj∣Y=ck)

  • 后验概率最大等价于0-1损失函数时的期望风险最小化
  • 朴素贝叶斯法的基本假设时条件独立性

P ( X = x ∣ Y = c k ) = P ( X 1 = x 1 , . . . , X n = x n ∣ Y = c k ) = p ( X 1 = x 1 ∣ Y = c k ) ∗ . . . ∗ p ( , X n ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k)=P(X^1=x^1,...,X^n=x^n|Y=c_k)=p(X^1=x^1|Y=c_k)*...*p(,X^n|Y=c_k)=\prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=x∣Y=ck)=P(X1=x1,...,Xn=xn∣Y=ck)=p(X1=x1∣Y=ck)∗...∗p(,Xn∣Y=ck)=∏j=1nP(Xj=xj∣Y=ck)

这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因此朴素贝叶斯法高效,且易于实现。缺点是分类的性能不一定高。

相关推荐
奔跑草-19 分钟前
【拥抱AI】GPT Researcher 源码试跑成功的心得与总结
人工智能·gpt·ai搜索·deep research·深度检索
禁默1 小时前
【第四届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2025】网络安全,人工智能,数字经济的研究
人工智能·安全·web安全·数字经济·学术论文
boooo_hhh2 小时前
深度学习笔记16-VGG-16算法-Pytorch实现人脸识别
pytorch·深度学习·机器学习
AnnyYoung2 小时前
华为云deepseek大模型平台:deepseek满血版
人工智能·ai·华为云
INDEMIND3 小时前
INDEMIND:AI视觉赋能服务机器人,“零”碰撞避障技术实现全天候安全
人工智能·视觉导航·服务机器人·商用机器人
慕容木木3 小时前
【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体的替代品,可本地部署+知识库,注册即可有750w的token使用
人工智能·火山引擎·deepseek·deepseek r1
南 阳3 小时前
百度搜索全面接入DeepSeek-R1满血版:AI与搜索的全新融合
人工智能·chatgpt
企鹅侠客4 小时前
开源免费文档翻译工具 可支持pdf、word、excel、ppt
人工智能·pdf·word·excel·自动翻译
冰淇淋百宝箱4 小时前
AI 安全时代:SDL与大模型结合的“王炸组合”——技术落地与实战指南
人工智能·安全
Elastic 中国社区官方博客5 小时前
Elasticsearch Open Inference API 增加了对 Jina AI 嵌入和 Rerank 模型的支持
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索·jina