【机器学习】02-朴素贝叶斯学习笔记

1. 朴素贝叶斯的理论基础

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

1.1 贝叶斯定理

先看什么是条件概率。

P ( A ∣ B ) P(A|B) P(AB)表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。其基本求解公式为: P ( A ∣ B ) = P ( A B ) P ( B ) P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=P(AB)P(B)P(A|B)=P(AB)P(B) P(AB)=P(AB)P(B)P(AB)=P(AB)P(B)
贝叶斯定理便是基于条件概率,通过 P ( A ∣ B ) 来 求 P ( B ∣ A ) P(A|B)来求P(B|A) P(AB)P(BA)

P ( B ∣ A ) = P ( A ∣ B ) P ( B ) P ( A ) P ( B ∣ A ) = P ( A ∣ B ) P ( B ) P ( A ) P(B|A)=P(A|B)P(B)P(A)P(B|A)=P(A|B)P(B)P(A) P(BA)=P(AB)P(B)P(A)P(BA)=P(AB)P(B)P(A)
顺便提一下,上式中的分母P(A),可以根据全概率公式分解为:

P ( A ) = ∑ i = 1 n P ( B i ) P ( A ∣ B i ) P(A)=\sum_{i=1}^{n}P(B_i)P(A|B_i) P(A)=i=1nP(Bi)P(ABi)

1.2 特征条件独立假设

这一部分开始朴素贝叶斯的理论推导,从中你会深刻地理解什么是特征条件独立假设。

给定训练数据集(X,Y),其中每个样本x都包括n维特征,即x=(x1,x2,x3,…,xn)x=(x1,x2,x3,…,xn),类标记集合含有k种类别,即y=(y1,y2,…,yk)y=(y1,y2,…,yk)。

如果现在来了一个新样本x,我们要怎么判断它的类别?从概率的角度来看,这个问题就是给定x,它属于哪个类别的概率最大。那么问题就转化为求解P(y1|x),P(y2|x),…,P(yk|x)P(y1|x),P(y2|x),…,P(yk|x)中最大的那个,即求后验概率最大的输出:argmaxykP(yk|x)argmaxykP(yk|x)
那P(yk|x)P(yk|x)怎么求解?答案就是贝叶斯定理:

P ( y k ∣ x ) = P ( x ∣ y k ) P ( y k ) P ( x ) P ( y k ∣ x ) = P ( x ∣ y k ) P ( y k ) P ( x ) P(yk|x)=P(x|yk)P(yk)P(x)P(yk|x)=P(x|yk)P(yk)P(x) P(ykx)=P(xyk)P(yk)P(x)P(ykx)=P(xyk)P(yk)P(x)
根据全概率公式,可以进一步地分解上式中的分母:

P ( y k ∣ x ) = P ( x ∣ y k ) P ( y k ) ∑ k P ( x ∣ y k ) P ( y k ) P ( y k ∣ x ) = P ( x ∣ y k ) P ( y k ) ∑ k P ( x ∣ y k ) P ( y k ) P(yk|x)=\frac{P(x|yk)P(yk)}{\sum_{k}P(x|yk)P(yk)P(yk|x)}=P(x|yk)P(yk)\sum_{k}P(x|yk)P(yk) P(ykx)=kP(xyk)P(yk)P(ykx)P(xyk)P(yk)=P(xyk)P(yk)kP(xyk)P(yk) 【公式1】

先不管分母,分子中的P(yk)P(yk)是先验概率,根据训练集就可以简单地计算出来。

而条件概率P(x|yk)=P(x1,x2,…,xn|yk)P(x|yk)=P(x1,x2,…,xn|yk),它的参数规模是指数数量级别的,假设第i维特征xixi可取值的个数有SiSi个,类别取值个数为k个,那么参数个数为:k∏ni=1Sik∏i=1nSi
这显然不可行。针对这个问题,朴素贝叶斯算法对条件概率分布作出了独立性的假设,通俗地讲就是说假设各个维度的特征x1,x2,…,xnx1,x2,…,xn互相独立,在这个假设的前提上,条件概率可以转化为:

P ( x ∣ y k ) = P ( x 1 , x 2 , . . . , x n ∣ y k ) = ∏ n i = 1 P ( x i ∣ y k ) P ( x ∣ y k ) = P ( x 1 , x 2 , . . . , x n ∣ y k ) = ∏ i = 1 n P ( x i ∣ y k ) P(x|yk)=P(x1,x2,...,xn|yk)=∏ni=1P(xi|yk)P(x|yk)=P(x1,x2,...,xn|yk)=∏i=1nP(xi|yk) P(xyk)=P(x1,x2,...,xnyk)=ni=1P(xiyk)P(xyk)=P(x1,x2,...,xnyk)=i=1nP(xiyk) 【公式2】

这样,参数规模就降到 ∑ i = 1 n S i k \sum_{i=1}^{n}Sik i=1nSik
以上就是针对条件概率所作出的特征条件独立性假设,至此,先验概率P(yk)P(yk)和条件概率P(x|yk)P(x|yk)的求解问题就都解决了,那么我们是不是可以求解我们所要的后验概率P(yk|x)P(yk|x)了?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
朴素叶斯回归是一种基于叶斯定理的机器学习算法,用于进行回归分析。它假设特征之间相互独立,并使用条件概率来计算给定特征值的目标变量的概率分布。在Python中,可以使用sklearn库的朴素叶斯模块中的相关函数来实现朴素叶斯回归。 具体实现步骤如下: 1. 引入所需的库和模块,例如从sklearn.naive_bayes模块中引入朴素叶斯回归算法相关的函数。 2. 准备数据集,包括输入特征和目标变量。可以使用numpy库生成随机数据或者从外部数据源加载数据。 3. 将数据集拆分为训练集和测试集,可以使用sklearn库的train_test_split函数来实现。 4. 创建朴素叶斯回归模型,并使用fit函数进行模型的训练,以得到特征在每个类别下的概率分布。 5. 使用模型的predict函数对测试集进行预测,得到目标变量的预测值。 6. 可以使用sklearn库的相关函数来评估模型的性能,例如计算均方误差(MSE)或决定系数(R-squared)等指标。 以上是Python中实现朴素叶斯回归的一般步骤,具体的实现代码可以参考引用中的示例代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [机器学习笔记--4、朴素叶斯及python实现](https://blog.csdn.net/weixin_44390462/article/details/105798195)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python实现朴素叶斯学习与分类过程解析](https://download.csdn.net/download/weixin_38738005/12860106)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水花

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值