朴素贝叶斯方法
《统计学习方法 第二版》 李航
输入空间X⊆Rn\mathcal{X} \sube \mathcal{R}^{n}X⊆Rn为nnn维向量的集合,输出空间为类标记集合Y={c1,⋯ ,cK}\mathcal{Y} = \{c_{1}, \cdots, c_{K}\}Y={c1,⋯,cK}。输入为特征向量x∈Xx\in\mathcal{X}x∈X,输出为类标记y∈Yy \in \mathcal{Y}y∈Y。XXX是定义在输入空间X\mathcal{X}X上的随机向量,YYY是定义在输出空间Y\mathcal{Y}Y上的随机变量。P(X,Y)P(X,Y)P(X,Y) 是XXX和YYY的联合概率分布。训练数据集T={(x1,y1),⋯ ,(xN,yN)}T=\{(x_{1}, y_{1}), \cdots, (x_{N},y_{N})\}T={(x1,y1),⋯,(xN,yN)}由P(X,Y)P(X,Y)P(X,Y)独立同分布产生。
1.参数估计,学习联合概率分布
朴素贝叶斯方法通过训练数据集学习联合概率分布P(X,Y)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)=P(X(1)=x(1),⋯ ,X(n)=x(n)∣Y=ck),k=1,2,⋯ ,KP(X=x|Y=c_{k})=P(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)}|Y=c_{k}), k=1, 2, \cdots, KP(X=x∣Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)∣Y=ck),k=1,2,⋯,K
于是学习到联合概率分布。
这里先验概率的极大似然估计是P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,⋯ ,KP(Y=c_{k}) = \frac{\sum_{i=1}^{N}I(y_{i}=c_{k})}{N}, k=1, 2, \cdots, KP(Y=ck)=N∑i=1NI(yi=ck),k=1,2,⋯,K
条件概率的极大似然估计是P(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck,xi(j)=ajl)∑i=1NI(yi=ck),j=1,2,⋯ ,n;l=1,2,⋯ ,Sj;k=1,2,⋯ ,KP(X^{(j)}=a_{jl} | Y=c_{k}) = \frac{\sum_{i=1}^{N}I(y_{i}=c_{k}, x_{i}^{(j)}=a_{jl})}{\sum_{i=1}^{N}I(y_{i}=c_{k})}, j=1, 2, \cdots, n; l=1, 2,\cdots, S_{j}; k=1, 2, \cdots, KP(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)∑i=1NI(yi=ck,xi(j)=ajl),j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K
其中SjS_{j}Sj表示第jjj个特征的所有可能取值的个数;I()I()I()是指示函数,如果为true则=1,否则返回false。
1.2贝叶斯估计
用极大似然估计可能会出现所要估计的概率值为0的情况,这会影响到后验概率的计算即过,使分类产生偏差。解决这个问题的方法是采用贝叶斯估计。具体来说,条件概率的贝叶斯估计是
P(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck,xi(j)=ajl)+λ∑i=1NI(yi=ck)+Sjλ,j=1,2,⋯ ,n;l=1,2,⋯ ,Sj;k=1,2,⋯ ,KP(X^{(j)}=a_{jl} | Y=c_{k}) = \frac{\sum_{i=1}^{N}I(y_{i}=c_{k}, x_{i}^{(j)}=a_{jl})+\lambda}{\sum_{i=1}^{N}I(y_{i}=c_{k})+S_{j}\lambda}, j=1, 2, \cdots, n; l=1, 2,\cdots, S_{j}; k=1, 2, \cdots, KP(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)+Sjλ∑i=1NI(yi=ck,xi(j)=ajl)+λ,j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K
式中λ≥0\lambda\geq 0λ≥0。如果λ=1\lambda = 1λ=1,这时称为拉普拉斯平滑。同样,先验概率的贝叶斯估计是
P(Y=ck)=∑i=1NI(yi=ck)+λN+Kλ,k=1,2,⋯ ,KP(Y=c_{k}) = \frac{\sum_{i=1}^{N}I(y_{i}=c_{k})+\lambda}{N+K\lambda}, k=1, 2, \cdots, KP(Y=ck)=N+Kλ∑i=1NI(yi=ck)+λ,k=1,2,⋯,K
2.预测标签
朴素贝叶斯方法对条件概率分布做了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯方法也由此得名。具体地,条件独立性假设是
P(X=x∣Y=ck)=P(X(1)=x(1),⋯ ,X(n)=x(n)∣Y=ck)=∏j=1nP(X(j)=x(j)∣Y=ck)P(X=x|Y=c_{k}) = P(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)}|Y=c_{k}) = \prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_{k})P(X=x∣Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)
条件独立性假设是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单,但有时也会牺牲一定的分类准确率。
朴素贝叶斯分类时,对于给定的输入xxx,通过学习到的模型计算后验概率分布P(Y=ck∣X=x)P(Y=c_{k}|X=x)P(Y=ck∣X=x),将后验概率最大的类作为xxx的类输出。后验概率根据贝叶斯定理进行:
P(Y=ck∣X=x)=P(X=x∣Y=ck)P(Y=ck)∑kP(X=x∣Y=ck)P(Y=ck)P(Y=c_{k}|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)=∑kP(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)
代入条件独立性假设:
P(Y=ck∣X=x)=P(Y=ck)∏jP(X(j)=x(j)∣Y=ck)∑kP(Y=ck)∏jP(X(j)=x(j)∣Y=ck),k=1,2,⋯ ,KP(Y=c_{k}|X=x) = \frac{P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}{\sum_{k}P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}, k=1, 2, \cdots, KP(Y=ck∣X=x)=∑kP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)P(Y=ck)∏jP(X(j)=x(j)∣Y=ck),k=1,2,⋯,K
于是朴素贝叶斯分类器可表示为
y=f(x)=argmaxckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)∑kP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)y=f(x)=arg\max_{c_{k}}\frac{P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}{\sum_{k}P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}y=f(x)=argmaxck∑kP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)P(Y=ck)∏jP(X(j)=x(j)∣Y=ck)
注意到上式分母对所有的ckc_{k}ck都是相同的,所以
y=f(x)=argmaxckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)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(X(j)=x(j)∣Y=ck)
2.2后验概率最大化的含义
等价于期望风险最小化。假设选择0-1损失函数:
KaTeX parse error: No such environment: align at position 25: …)=\left\{\begin{̲a̲l̲i̲g̲n̲}̲ 1, & Y\neq f(X…
式中f(X)f(X)f(X)是分类决策函数。这时,期望风险函数为
Rexp(f)=E[L(Y,f(X))]R_{exp}(f)=\mathbb{E}[L(Y, f(X))]Rexp(f)=E[L(Y,f(X))]
期望是对联合概率(X,Y)(X, Y)(X,Y)取的。由此取条件期望
Rexp(f)=EX∑k=1c[L(ck,f(X))]P[ck∣X]R_{exp}(f)=\mathbb{E}_{X}\sum_{k=1}^{c}[L(c_{k}, f(X))]P[c_{k}|X]Rexp(f)=EX∑k=1c[L(ck,f(X))]P[ck∣X]
为了使期望风险最小化,只需对X=xX=xX=x逐个求极小化,由此得到:
KaTeX parse error: Expected 'EOF', got '&' at position 7: f(x) =&̲ arg\min_{y\in\…
这样期望风险最小化得到了后验概率最大化准则。