贝叶斯定理
前置知识:条件概率、全概率、贝叶斯公式
推荐视频,看完视频后搜索博客了解先验概率
、后验概率
这里简单记录一下
贝叶斯定理:已知结果找原因/过程
已知事件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 表示 后面的表达式取最大值的时候,返回自变量 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)
这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因此朴素贝叶斯法高效,且易于实现。缺点是分类的性能不一定高。