贝叶斯分类器详解

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

目录

一、数学基础

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张图片


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

你可能感兴趣的:(机器学习,机器学习,数据挖掘,人工智能,贝叶斯,分类)