# 监督学习\_朴素贝叶斯分类

![异世界.png](https://3321220703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lz6-7SJjwZD9V_N-3MS%2Fuploads%2Fgit-blob-50ea64a1dc0515db1eb624a09017f6badeb3e5fd%2F%E5%BC%82%E4%B8%96%E7%95%8C%E8%95%BE%E5%A7%86_1.png?alt=media)

\[TOC]

## 朴素贝叶斯分类(Naive Bayesian)

> `贝叶斯定理`是关于随机事件A和B的条件概率的一则定理。
>
> 通常，事件A在事件B(发生)的条件下的概率，与事件B在事件A(发生)的条件下的概率是不一样的，但它们两者之间是有确定的关系的，贝叶斯定理陈述了这个关系。
>
> 贝叶斯定理的一个主要应用为贝叶斯推理，它是一种建立在主观判断基础之上的推理方法，也就是说，你只需要先预估一个值，然后再去根据实际结果去不断修正，不需要任何客观因素。
>
> 这种推理方式需要大量的计算，因此一直遭到其他人的诟病，无法得到广泛的应用，直到计算机的高速发展，并且人们发现很多事情都是无法事先进行客观判断的，因此贝叶斯推理才得以东山再起。
>
> [新手入门：带你搞懂朴素贝叶斯分类算法](https://blog.csdn.net/LEE18254290736/article/details/82414685)

## 贝叶斯定理

> $$
> P(A|B)=\frac{P(B|A)P(A)}{P(B)}
> $$
>
> * $$P(A|B)$$: 在$$B$$条件下的事件$$A$$的概率，在贝叶斯定理中，`条件概率`也被称为`后验概率`，即在事件$$B$$发生之后，我们对事件$$A$$概率的重新评估。
> * $$P(B|A)$$: 在$$A$$条件下的事件$$B$$的概率，与上一条同理。
> * $$P(A)$$与$$P(B)$$被称为`先验概率`(也被称为`边缘概率`)，即在事件$$B$$发生之前，对事件$$A$$概率的一个推断(不考虑任何事件$$B$$方面的因素)，后面同理。
> * $$\frac{P(B|A)}{P(B)}$$被称为`标准相似度`，它是一个调整因子，主要是为了保证预测概率更接近真实概率。
>
> 根据这些术语，`贝叶斯定理`表述为：$$后验概率=标准相似度\*先验概率$$。

## 全概率公式

> `全概率公式`是将边缘概率与条件概率关联起来的基本规则，它表示了一个结果的总概率
>
> 可以通过几个不同的事件来实现 全概率公式将对一复杂事件的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题
>
> $$
> P(B)=\sum\_i=1{}^{n}{P(A\_{i})P(B|A\_i)}
> $$
>
> 假定一个样本空间$$S$$，它是两个事件$$A$$与$$C$$之和，同时事件$$B$$与它们两个都有交集，如下图所示：
>
> <img src="https://3321220703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lz6-7SJjwZD9V_N-3MS%2F-Lz66l-RlLtsSdQJrkbn%2F-Lz66mBpr2SaYR2ggpaY%2F1570013984975.png?generation=1579593706628747&#x26;alt=media" alt="1570013984975" data-size="original">
>
> 那么事件$$B$$的概率可以表示为$$P(B)=P(B \cap A)+P(B \cap C)$$
>
> 通过条件概率，可以推断出$$P(B \cap A)=P(B|A)P(A)$$，所以$$P(B)=P(B|A)P(A)+P(B|C)P(C)$$
>
> 这就是全概率公式，即`事件B的概率等于事件A与事件C的概率分别乘以B对这两个事件的条件概率之和`。

## 流程步骤

> 输入：训练数据$$T={(x\_1,y\_1 ),(x\_2,y\_2 ),...,(x\_N,y\_N )}$$，其中$$x\_i=(x\_i^{(1)},x\_i^{(2)},...,x\_i^{(N)})^T$$，$$x\_i^{(j)}$$是第i$$个$$样本的第$$j$$个特征，$$x\_i^{(j)} \in { a\_{j1},a\_{j2},...,a\_{jS\_j} }$$，$$a\_{jl}$$是第$$j$$个特征可能取的第$$l$$个值，$$j＝1,2,...,n$$，$$l＝1,2,...,S\_j$$ ，$$y\_i \in {c\_1,c\_2,...c\_K }$$；实例$$x$$；
>
> 输出：实例$$x$$的分类
>
> 1. 计算先验概率及条件概率
>
> $$
> P(Y=c\_k)=\frac{\sum\_{i=1}^{N}{I(y\_i=c\_k)}}{N},k=1,2,...,K \ P(X^{(j)}=a\_{jl}|Y=c\_k)=\frac{\sum\_{i=1}^{N}{I(x\_i^{(j)}=a\_{jl},y\_i=c\_k)}}{\sum\_{i=1}^{N}{I(y\_i=c\_k)}} \ j=1,2,...n;l=1,2,...,S\_j;k=1,2,...,K
> $$
>
> 1. 对于给定的实例$$x＝(x^{(1)},x^{(2)},...,x^{(n)})^T$$，计算
>
> $$
> P(Y=c\_k)\prod\_{j=1}^{n}{P(X^{(j)}=x^{(j)}|Y=c\_k}),k=1,2,...,K
> $$
>
> 1. 确定实例$$x$$的类
>
> $$
> y=\arg\max\_{c\_k}P(Y=c\_k\prod\_{j=1}^{n}{P(X^{(j)}=x^{(j)}|Y=c\_k)}
> $$

## 例子

> `Example1`: 假设有两家工厂生产并对外提供电灯泡
>
> 工厂X生产的电灯泡在99%的情况下能够工作超过5000 小时，
>
> 工厂Y生产的电灯泡在95%的情况下能够工作超过5000小时。
>
> 工厂X在市场的占有率为60%，工厂Y为40%，
>
> 如何推测出购买的灯泡的工作时间超过5000小时的概率是多少呢？
>
> 运用全概率公式，可以得出：
>
> $$
> Pr(A)=Pr(A|B\_x).Pr(B\_x)+Pr(A|B\_y).Pr(B\_y)=\frac{99}{100}.\frac{6}{10}+\frac{95}{100}.\frac{4}{10}=\frac{974}{1000}
> $$
>
> * $$Pr(B\_x)=\frac{6}{10}$$: 购买到工厂X制造的电灯泡的概率。
> * $$Pr(B\_y)=\frac{4}{10}$$: 购买到工厂y制造的电灯泡的概率。
> * $$Pr(A|B\_x)=\frac{99}{100}$$: 工厂x制造的电灯泡工作时间超过5000小时的概率。
> * $$Pr(A|B\_y)=\frac{95}{100}$$ : 工厂y制造的电灯泡工作时间超过5000小时的概率。
>
> 因此，可以得知购买一个工作时间超过5000小时的电灯泡的概率为97.4%。
>
> `Example2`: 试由表的训练数据学习一个朴素贝叶斯分类器并确定$$x＝(2,S)^T$$的类标记$$y$$。
>
> 表中$$X^{(1)}$$ ，$$X^{(2)}$$为特征，取值集合分别为$$A\_1＝{1,2,3}$$，$$A\_2＝{S,M,L}$$，$$Y$$为类标记，$$Y \in C ={1,-1}$$。

|             | 1  | 2  | 3 | 4 | 5  | 6  | 7  | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| ----------- | -- | -- | - | - | -- | -- | -- | - | - | -- | -- | -- | -- | -- | -- |
| $$x^{(1)}$$ | 1  | 1  | 1 | 1 | 1  | 2  | 2  | 2 | 2 | 2  | 3  | 3  | 3  | 3  | 3  |
| $$x^{(2)}$$ | S  | M  | M | S | S  | S  | M  | M | L | L  | L  | M  | M  | L  | L  |
| $$Y$$       | -1 | -1 | 1 | 1 | -1 | -1 | -1 | 1 | 1 | 1  | 1  | 1  | 1  | 1  | -1 |

> **解** 　根据算法，由表容易计算下列概率：
>
> $$
> P(Y=1)=\frac{10}{17},P(Y=-1)=\frac{7}{17} \ P(X^{(1)}=1|Y=1)=\frac{3}{12},P(X^{(1)}=2|Y=1)=\frac{4}{12},P(X^{(1)}=3|Y=1)=\frac{5}{12} \ P(X^{(2)}=S|Y=1)=\frac{2}{12},P(X^{(2)}=M|Y=1)=\frac{5}{12},P(X^{(2)}=L|Y=1)=\frac{5}{12} \ P(X^{(1)}=1|Y=-1)=\frac{4}{9},P(X^{(1)}=2|Y=-1)=\frac{3}{9},P(X^{(1)}=3|Y=-1)=\frac{2}{9} \ P(X^{(2)}=S|Y=-1)=\frac{4}{9},P(X^{(2)}=M|Y=-1)=\frac{3}{9},P(X^{(2)}=L|Y=-1)=\frac{2}{9}
> $$
>
> 对于给定的$$x＝(2,S)^T$$计算：
>
> $$
> P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{9}{15}.\frac{3}{9}.\frac{1}{9}=\frac{1}{45} \ P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{6}{15}.\frac{2}{6}.\frac{3}{6}=\frac{1}{15}
> $$
>
> 因为$$P(Y＝-1)P(X^{(1)}＝2|Y＝-1)P(X^{(2)}＝S|Y＝-1)$$最大，所以$$y＝-1$$。

## 朴素贝叶斯的概率模型

> 我们设一个待分类项$$X=f\_1,f\_2,...,f\_n$$，其中每个$$f$$为$$x$$的一个特征属性，然后设一个类别集合$$C\_1, C\_2,...,C\_m$$
>
> 然后需要计算$$P(C\_1|X),P(C\_2|X),...,P(C\_m|X)$$，我们可以根据一个训练样本集合(已知分类的待分类项集合)，然后统计得到在各类别下各个特征属性的条件概率：
>
> $$
> P(f\_1|C\_1),P(f\_1|C\_1),...P(f\_n|C\_1),...,P(f\_1|C\_2),P(f\_2|C\_2), \ ...P(f\_n|C\_2,...,P(f\_1|C\_m),P(f\_2|C\_m),...,P(f\_n|C\_m),
> $$
>
> 如果$$P(C\_k|X)=MAX(P(C\_1|X),P(C\_2|X),...,P(C\_mlX))$$，则$$X \in C\_k$$(贝叶斯分类其实就是取概率最大的那一个)。 朴素贝叶斯会假设每个特征都是独立的，根据贝叶斯定理可推得：
>
> $$
> P（C\_i|X)=\frac{P(X|C\_i)P(C\_i)}{P(X)}
> $$
>
> 由于分母对于所有类别为常数，因 此只需要将分子最大化即可，又因为各特征是互相独立的，所以最终推得：
>
> $$
> P(X|C\_i)P(C\_i)=P(f\_1|C\_i)P(f\_2|C\_i),...,P(f\_n|C\_i)P(C\_i)=P(C\_i)\prod\_{j=1}^{n}{P(f\_j|C\_i)}
> $$
