机器学习基础——贝叶斯分类器
贝叶斯分类器贝叶斯分类是一种分类算法的总称,这种算法的均以贝叶斯定理为基础。贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公司计算出其后验概率,即该对象属于某一类的概率。主要的特点属性可以离散、也可以是连续数学基础扎实,分类效率稳定对缺失和噪声数据不敏感属性如果不相关,分类效果很好,如果相关,则不低于决策树。贝叶斯定理设SSS为试验EEE的样本空间。B1,B2⋯&...
贝叶斯分类器
贝叶斯分类是一种分类算法的总称,这种算法的均以贝叶斯定理为基础。
贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公司计算出其后验概率,即该对象属于某一类的概率。
主要的特点
- 属性可以离散、也可以是连续
- 数学基础扎实,分类效率稳定
- 对缺失和噪声数据不敏感
- 属性如果不相关,分类效果很好,如果相关,则不低于决策树。
贝叶斯定理
设SSS为试验EEE的样本空间。B1,B2⋯ ,BnB_1,B_2\cdots,B_nB1,B2⋯,Bn为EEE的一组事件,若
- Bi⋂Bj=∅,i≠j,i,j=1,2,⋯ ,nB_i \bigcap B_j=\empty,i\ne j ,i,j=1,2,\cdots,nBi⋂Bj=∅,i̸=j,i,j=1,2,⋯,n
- B1⋃B2⋯⋃Bn=SB_1\bigcup B_2 \cdots \bigcup B_n=SB1⋃B2⋯⋃Bn=S
则称B1,B2,⋯ ,BnB_1,B_2,\cdots,B_nB1,B2,⋯,Bn为样本空间SSS的一个划分。如果B1,B2,⋯ ,BnB_1,B_2,\cdots,B_nB1,B2,⋯,Bn为样本的一个划分,则对于每次试验,事件中有且仅有一个事件发生。
全概率公式:设试验EEE的样本空间为SSS,A为E的事件,B1,B2⋯ ,BnB_1,B_2\cdots,B_nB1,B2⋯,Bn为样本空间SSS的一个划分,且P(Bi)≥0,i=1,2,3⋯ ,nP(B_i)\ge 0 ,i=1,2,3\cdots,nP(Bi)≥0,i=1,2,3⋯,n
P(A)=P(A∣B1)P(B1)+⋯+P(A∣Bn)P(Bn)=∑j=1nP(A∣Bj)P(Bj) P(A)=P(A|B_1)P(B_1) + \cdots + P(A|B_n)P(B_n)=\sum_{j=1}^n P(A|B_j)P(B_j) P(A)=P(A∣B1)P(B1)+⋯+P(A∣Bn)P(Bn)=j=1∑nP(A∣Bj)P(Bj)
贝叶斯定理:设试验EEE的样本空间维SSS,A为E的事件,B1,B2⋯ ,BnB_1,B_2\cdots,B_nB1,B2⋯,Bn为样本空间S的一个划分,且P(A)>0,P(Bi)≥0,i=1,2⋯nP(A)>0,P(B_i)\ge 0 , i=1,2\cdots nP(A)>0,P(Bi)≥0,i=1,2⋯n,则有
P(Bi∣A)=P(A∣Bi)P(Bi)∑i=1nP(A∣Bi)P(Bi) P(B_i|A) = \frac{P(A|B_i)P(B_i)}{\sum\limits_{i=1}^n P(A|B_i)P(B_i)} P(Bi∣A)=i=1∑nP(A∣Bi)P(Bi)P(A∣Bi)P(Bi)
朴素贝叶斯法
设样本x⃗=(x(1),x(2),⋯ ,x(n))T∈X⊆Rn\vec{x}=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T\in \mathcal{X}\sube \mathbb{R}^nx=(x(1),x(2),⋯,x(n))T∈X⊆Rn,设标记y∈Y={c1,c2,⋯ ,ck}y\in \mathcal{Y}=\{c_1,c_2,\cdots,c_k\}y∈Y={c1,c2,⋯,ck}。令XXX为X\mathcal{X}X上的随机向量,Y为Y\mathcal{Y}Y 上的随机向量。P(X,Y)为X和Y的联合概率分布。假定训练数据集T={(x1⃗,y1),(x2⃗,y2),⋯ ,(xn⃗,yn)}T=\{(\vec{x_1},y_1),(\vec{x_2},y_2),\cdots,(\vec{x_n},y_n)\}T={(x1,y1),(x2,y2),⋯,(xn,yn)}由P(X,Y)独立同分布。那么朴素贝叶斯可从训练数据集中学习联合概率分布P(X,Y)。
- 先验概率分布: P(Y=ck),k=1,2,⋯ ,KP(Y=c_k),k=1,2,\cdots,KP(Y=ck),k=1,2,⋯,K
- 条件概率分布:P(X=x⃗∣Y=ck),k=1,2,⋯ ,KP(X=\vec{x}|Y=c_k),k=1,2,\cdots,KP(X=x∣Y=ck),k=1,2,⋯,K
朴素贝叶斯法假设:在分类确定的条件下,用于分类的特征是条件独立的。即
P(X=x⃗∣Y=ck)=P(X(1)=x(1),X(2)=x(2),⋯ ,X(n)=x(n)∣Y=ck)=∏i=1nP(X(i)=x(i)∣Y=ck),k=1,2,⋯ ,K \begin{aligned} P(X=\vec{x}|Y=c_k) &=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},\cdots,X^{(n)}=x^{(n)}|Y=c_k) \\ & = \prod_{i=1}^n P(X^{(i)}=x^{(i)}|Y=c_k),k=1,2,\cdots,K \end{aligned} P(X=x∣Y=ck)=P(X(1)=x(1),X(2)=x(2),⋯,X(n)=x(n)∣Y=ck)=i=1∏nP(X(i)=x(i)∣Y=ck),k=1,2,⋯,K
根据贝叶斯定理
P(Y=ck∣X=x⃗)=P(X=x⃗∣Y=ck)P(Y=ck)∑i=1KP(X=x⃗∣Y=ci)P(Y=ci) P(Y=c_k|X=\vec{x}) = \frac{P(X=\vec x | Y=c_k)P(Y=c_k)}{\sum\limits_{i=1}^K P(X=\vec x|Y=c_i)P(Y=c_i)} P(Y=ck∣X=x)=i=1∑KP(X=x∣Y=ci)P(Y=ci)P(X=x∣Y=ck)P(Y=ck)
考虑分类特征的条件独立假设有
P(Y=ck∣X=x⃗)=P(Y=ck)∏i=1nP(X(i)=x(i)∣Y=ck)∑i=1KP(X=x⃗∣Y=ci)P(Y=ci),k=1,2⋯ ,K P(Y=c_k|X=\vec{x}) = \frac{P(Y=c_k)\prod\limits_{i=1}^n P(X^{(i)}=x^{(i)}|Y=c_k)}{\sum\limits_{i=1}^K P(X=\vec x|Y=c_i)P(Y=c_i)},k=1,2\cdots,K P(Y=ck∣X=x)=i=1∑KP(X=x∣Y=ci)P(Y=ci)P(Y=ck)i=1∏nP(X(i)=x(i)∣Y=ck),k=1,2⋯,K
由于朴素贝叶斯分类器表示为:
y=f(x⃗)=argmaxckP(Y=ck)∏i=1nP(X(i)=x(i)∣Y=ck)∑i=1KP(X=x⃗∣Y=ci)P(Y=ci) y=f(\vec x) = \arg \underset{c_k}{\max} \frac{P(Y=c_k)\prod\limits_{i=1}^n P(X^{(i)}=x^{(i)}|Y=c_k)}{\sum\limits_{i=1}^K P(X=\vec x|Y=c_i)P(Y=c_i)} y=f(x)=argckmaxi=1∑KP(X=x∣Y=ci)P(Y=ci)P(Y=ck)i=1∏nP(X(i)=x(i)∣Y=ck)
由于对所有的ck,k=1,2,⋯ ,Kc_k,k=1,2,\cdots,Kck,k=1,2,⋯,K,上式的分母都相同,因此上式可以重写为
y=f(x⃗)=argmaxckP(Y=ck)∏i=1nP(X(i)=x(i)∣Y=ck) y=f(\vec x) = \arg \underset{c_k}{\max} P(Y=c_k)\prod_{i=1}^n P(X^{(i)}=x^{(i)}|Y=c_k) y=f(x)=argckmaxP(Y=ck)i=1∏nP(X(i)=x(i)∣Y=ck)
朴素贝叶斯法的学习
在朴素贝叶斯法中,要学习的参数就是以下两种
- 先验概率 P(Y=ck)P(Y=c_k)P(Y=ck)
- 条件概率 P(X(j)=x(j)∣Y=ck)P(X^{(j)}=x^{(j)}|Y=c_k)P(X(j)=x(j)∣Y=ck)
通常采用极大似然估计这两种概率
-
先验概率P(Y=ck)P(Y=c_k)P(Y=ck)的极大似然估计为
P(Y=ck)=1N∑i=1NI(yi=ck),k=1,2,⋯ ,K P(Y=c_k)=\frac{1}{N} \sum_{i=1}^N I(y_i=c_k),k=1,2,\cdots,K P(Y=ck)=N1i=1∑NI(yi=ck),k=1,2,⋯,K -
条件概率P(X(j)=ajl∣Y=ck)P(X^{(j)}=a_{jl}|Y=c_k)P(X(j)=ajl∣Y=ck)的极大似然估计为
P(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck)j=1,2,⋯ ,nl=1,2,⋯ ,sjk=1,2,⋯ ,K P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum\limits_{i=1}^N I(x^{(j)}_i=a_{jl},y_i=c_k)}{\sum\limits_{i=1}^N I(y_i=c_k)} \\ j=1,2,\cdots,n \\ l = 1,2,\cdots,s_j \\ k=1,2,\cdots,K P(X(j)=ajl∣Y=ck)=i=1∑NI(yi=ck)i=1∑NI(xi(j)=ajl,yi=ck)j=1,2,⋯,nl=1,2,⋯,sjk=1,2,⋯,K
其中aj1,aj2⋯ ,ajsja_{j1},a_{j2}\cdots,a_{js_j}aj1,aj2⋯,ajsj为第j个特征x(j)x^{(j)}x(j)可能的取值。
朴素贝叶斯算法
输入
训练集T={(x⃗1,y1),(x⃗2,y2),⋯ ,(x⃗N,yN)}T=\{(\vec x_1,y_1),(\vec x_2,y_2),\cdots,(\vec x_N,y_N)\}T={(x1,y1),(x2,y2),⋯,(xN,yN)},x⃗i=(xi(1),xi(2),⋯ ,xi(n))T\vec x_i = (x^{(1)}_i,x^{(2)}_i,\cdots,x^{(n)}_i)^Txi=(xi(1),xi(2),⋯,xi(n))T,xi(j)x^{(j)}_ixi(j)为第i个样本第j个特征,其中xi(j)∈{aj1,aj2,⋯ ,ajsj}x^{(j)}_i \in \{a_{j1},a_{j2},\cdots,a_{js_j}\}xi(j)∈{aj1,aj2,⋯,ajsj},ajla_{jl}ajl为j个特征可能取得的第l个值,j=1,2,⋯ ,n,l=1,2,⋯ ,sk,yi∈{c1,c2,⋯ ,ck}j=1,2,\cdots,n,l=1,2,\cdots,s_k,y_i\in\{c_1,c_2,\cdots,c_k\}j=1,2,⋯,n,l=1,2,⋯,sk,yi∈{c1,c2,⋯,ck}
实例x⃗\vec xx
输出
实例x⃗\vec xx 的分类
算法步骤
-
计算先验概率的估计值以及条件概率的估计值
P(Y=ck)=1N∑i=1NI(yi=ck),k=1,2,⋯ ,KP(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck)j=1,2,⋯ ,nl=1,2,⋯ ,sjk=1,2,⋯ ,K P(Y=c_k)=\frac{1}{N} \sum_{i=1}^N I(y_i=c_k),k=1,2,\cdots,K \\ P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum\limits_{i=1}^N I(x^{(j)}_i=a_{jl},y_i=c_k)}{\sum\limits_{i=1}^N I(y_i=c_k)} \\ j=1,2,\cdots,n \\ l = 1,2,\cdots,s_j \\ k=1,2,\cdots,K P(Y=ck)=N1i=1∑NI(yi=ck),k=1,2,⋯,KP(X(j)=ajl∣Y=ck)=i=1∑NI(yi=ck)i=1∑NI(xi(j)=ajl,yi=ck)j=1,2,⋯,nl=1,2,⋯,sjk=1,2,⋯,K -
给于给定的实例x⃗=(x(1),x(2),⋯ ,x(n))T\vec x = (x^{(1)},x^{(2)},\cdots,x^{(n)})^Tx=(x(1),x(2),⋯,x(n))T,计算
P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck),k=1,2⋯ ,K P(Y=c_k)\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k),k=1,2\cdots,K P(Y=ck)j=1∏nP(X(j)=x(j)∣Y=ck),k=1,2⋯,K -
计算并返回实例x⃗\vec xx的分类yyy
y=argmaxckP(Y=ck)∏i=1nP(X(i)=x(i)∣Y=ck) y=\arg \underset{c_k}{\max} P(Y=c_k)\prod_{i=1}^n P(X^{(i)}=x^{(i)}|Y=c_k) y=argckmaxP(Y=ck)i=1∏nP(X(i)=x(i)∣Y=ck)
贝叶斯估计
设第jjj个特征x(j)x^{(j)}x(j)可能的取值为aj1,aj2,⋯ ,ajsja_{j1},a_{j2},\cdots,a_{js_j}aj1,aj2,⋯,ajsj,则条件概率P(X(j)=ajl∣Y=ck)P(X^{(j)}=a_{jl}|Y=c_k)P(X(j)=ajl∣Y=ck)的极大似然估计为
P(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck)j=1,2,⋯ ,nl=1,2,⋯ ,sjk=1,2,⋯ ,K P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum\limits_{i=1}^N I(x^{(j)}_i=a_{jl},y_i=c_k)}{\sum\limits_{i=1}^N I(y_i=c_k)} \\j=1,2,\cdots,n \\l = 1,2,\cdots,s_j \\k=1,2,\cdots,K P(X(j)=ajl∣Y=ck)=i=1∑NI(yi=ck)i=1∑NI(xi(j)=ajl,yi=ck)j=1,2,⋯,nl=1,2,⋯,sjk=1,2,⋯,K
用极大似然估计可能会出现分母为0的情况,因此可以采用贝叶斯估计(最大后验估计)
P(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)+λ∑i=1NI(yi=ck)+sjλ P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum\limits_{i=1}^N I(x^{(j)}_i=a_{jl},y_i=c_k)+\lambda}{\sum\limits_{i=1}^N I(y_i=c_k)+s_j\lambda} P(X(j)=ajl∣Y=ck)=i=1∑NI(yi=ck)+sjλi=1∑NI(xi(j)=ajl,yi=ck)+λ
它满足概率分布函数的条件
Pλ(X(j)=ajl∣Y=ck)>0,l=1,2,⋯ ,sj,k=1,2,⋯ ,K∑l=1sjPλ(X(j)=ajl∣Y=ck)=1 P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k) >0 , l=1,2,\cdots,s_j,k=1,2,\cdots,K \\\sum_{l=1}^{s_j}P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k)=1 Pλ(X(j)=ajl∣Y=ck)>0,l=1,2,⋯,sj,k=1,2,⋯,Kl=1∑sjPλ(X(j)=ajl∣Y=ck)=1
此时P(Y=ck)P(Y=c_k)P(Y=ck)的贝叶斯估计调整为:
Pλ(Y=ck)=∑i=1NI(yi=ck)+λN+λ P_{\lambda}(Y=c_k)=\frac{\sum\limits_{i=1}^NI(y_i=c_k)+\lambda}{N+\lambda} Pλ(Y=ck)=N+λi=1∑NI(yi=ck)+λ
- 当λ=0\lambda = 0λ=0时,为极大似然估计
- 当λ=1\lambda=1λ=1时,为拉普拉斯平滑

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)