贝叶斯分类器详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。​​​​​​​

目录

一、数学基础

1、贝叶斯决策论

(1)先验概率和后验概率

(2)贝叶斯定理

2、极大似然估计

(1)基本思路

(2)公式推导

(3)常见假设——正态分布

二、朴素贝叶斯分类器

1、符号设定

2、后验概率的计算

3、极大似然法求最合适的分布参数

4、常见假设——正态分布

5、拉普拉斯平滑

三、优缺点

1、优点

2、缺点

四、代码示例


一、数学基础

1、贝叶斯决策论

(1)先验概率和后验概率

先验概率:根据以往经验和分析得到的概率;

后验概率:事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小(即根据观察到的样本修正之后的概率值)。

(2)贝叶斯定理

用途:为了解决“逆概率”问题,它可以根据过去的数据来预测出概率,在有限的信息下,预测概率。

P\left(B_{i} \mid A\right)=\frac{P\left(B_{i}\right) P\left(A \mid B_{i}\right)}{P(A)}=\frac{P\left(B_{i}\right) P\left(A \mid B_{i}\right)}{\sum_{j=1}^{n} P\left(B_{j}\right) P\left(A \mid B_{j}\right)}

P(B):先验概率,即在不知道A事件的前提下,我们对B事件概率的一个主观判断。

P(A|B)/P(A):可能性函数,即调整因子,即新信息A带来的调整,使得其与先验概率相乘后得到的概率更接近真实概率。

比如说,我们现在有个特征,想知道出现这种特征的对象是这种类别的概率,即:

P(\text { category } \mid \text { features })=\frac{P(\text { features} \mid \text{category }) P(\text { category })}{P(\text { features })}

2、极大似然估计

(1)基本思路

首先假定数据具有某种确定的概率分布(所有的采样都是独立同分布的),但是其参数未知,然后基于训练样本对该概率分布的参数进行估计,得到最合适的参数。

(2)公式推导

D_{c}为训练集中第c类样本组合而成的集合;\theta_{c}为假设样本分布的某种概率分布的参数向量;x为D_{c}中的某一样本,则目标为:

P(D_{c} \mid \theta_{c})= \prod_{x\epsilon D_{c}}^{} P(x \mid \theta_{c})

找出合适的\theta_{c}使得上述式子能得到最大值(即找到合适的参数使得更多的样本满足这样的分布)。

但是上述式子容易造成下溢(突破最小极限),所以通常又引入对数似然

LL(\theta_{c}) = log(P(D_{c} \mid \theta_{c}))= \sum_{x\epsilon D_{c}}^{}log(P(x \mid \theta_{c}))

于是最终的目标式化为:argmax LL(\theta_{c})

(3)常见假设——正态分布

解得:(其中n为D_{c}的总数)

\mu^{*}=\bar{x}=\frac{1}{n} \sum_{i=1}^{n} x_{i} ; \sigma^{* 2}=\frac{1}{n} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2}


二、朴素贝叶斯分类器

朴素贝叶斯分类器假设所有属性相互独立。

1、符号设定

设样本属性集合为x=\left\{x_{1}, x_{2}, \ldots, x_{m}\right\}( n 为属性数目),x_{i}为样本x在第i属性上的取值;

样本类别集合为\left\{y_{1}, y_{2}, \ldots, y_{m}\right\}

2、后验概率的计算

“所有属性相互独立”才有下式的第二步

P\left(y_{j} \mid x\right)=\frac{P\left(y_{j}\right) P\left(x \mid y_{i}\right)}{P(x)}=\frac{P\left(y_{j}\right) \prod_{i=1}^{n} P\left(x_{i} \mid y_{j}\right)}{ \operatorname{P}(x)}, j=1,2 \ldots, m

3、极大似然法求最合适的分布参数

因为对于所有类别来说P(x)都一样,所以在求最大值时无需考虑它的影响。

所以目标式化为:argmax(P\left(y_{j}\right) \prod_{i=1}^{n} P\left(x_{i} \mid y_{j}\right)), j=1,2 \ldots, m

4、常见假设——正态分布

即有

p\left(x_{i} \mid y_{j}\right)=\frac{1}{\sqrt{2 \pi} \sigma_{y_{j}, i}} \exp \left(-\frac{\left(x_{i}-\mu_{y_{j}, i}\right)^{2}}{2 \sigma_{y_{j}, i}^{2}}\right)

5、拉普拉斯平滑

为了避免其他属性携带的信息被训练集中未出现的属性抹去,在估计概率是通常进行平滑。

P(y_{j})=\frac{|D_{y_{j}}|+1}{|D|+N}


三、优缺点

1、优点

(1)简单,学习效率高

(2)分类过程中时空开销小

2、缺点

受假设变量间独立与假设分布情况的影响


四、代码示例

from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
from sklearn import datasets
import pandas as pd
from sklearn.metrics import classification_report

data = datasets.load_iris()
iris_target = data.target
iris_features = pd.DataFrame(data=data.data, columns=data.feature_names)
train_x, test_x, train_y, test_y = train_test_split(iris_features, iris_target, test_size=0.3)

clf = GaussianNB()
clf.fit(train_x, train_y)

y_predict = clf.predict(test_x)
accuracy = metrics.accuracy_score(test_y, y_predict)

print(accuracy)
print(classification_report(test_y, y_predict))

输出


欢迎大家在评论区批评指正,谢谢~ 

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
简明贝叶斯分类是一种基于贝叶斯决策理论的分类算法。它的设计包括基于最小错误率和最小风险的分类的设计。通过这个算法,我们可以将贝叶斯理论应用到实际问题中,解决二分类问题。 在使用简明贝叶斯分类进行分类时,我们可以使用Matlab进行二分类问题的实现。例如,以"狼来了"为例,可以使用贝叶斯分类对小孩说谎的可信度进行计算,并使用Matlab实现这个二分类问题的算法。 值得注意的是,简明贝叶斯分类的训练次数与感知机算法不同。对于感知机算法,根据Novikoff定理,当间隔为正时,算法会在有限次数的迭代中收敛,找到一个界限,不会无限循环。而对于简明贝叶斯分类,在设计时并没有明确指定需要训练多少次。具体的训练次数取决于实际问题的复杂度和数据集的大小。通常情况下,我们可以根据实验结果不断调整训练次数,以达到最优的分类效果。 综上所述,简明贝叶斯分类是一种基于贝叶斯决策理论的分类算法,可以通过Matlab进行实现。在使用这个算法时,训练次数可以根据实际情况进行调整,以获得最佳的分类效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [清华大学出版社-图书详情-《模式识别与人工智能(基于MATLAB)》](https://blog.csdn.net/weixin_39860108/article/details/115993659)[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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [贝叶斯分类的matlab实现及案例](https://download.csdn.net/download/sinat_29694963/10201136)[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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SVM分类原理详解](https://blog.csdn.net/comway_Li/article/details/81137651)[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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tt丫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值