1. 朴素贝叶斯法
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
朴素贝叶斯法是典型的生成学习方法,由训练数据学习联合概率分布P(X,Y),然后求得后验概率P(Y|X)。
条件独立性假设:
$$
P(X=x|Y=c_k)=P(X^1=x^1,…X^n=x^n|Y=c_k)=\prod_{j=1}^n P(X^j=x^j|Y=c_k)
$$
条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。朴素贝叶斯公式:
$$
P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)}=\frac{P(Y=c_k)\prod_jP(X^j=x^j|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(X^j=x^j|Y=c_k)}
$$
其中,k=1,2,…,K朴素贝叶斯分类器可以表示为:
$$
y=f(x)=arg max_{c_k}\frac{P(Y=c_k)\prod_jP(X^j=x^j|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(X^j=x^j|Y=c_k)}
$$
由于分母不变,故可简化为:
$$
y=f(x)=arg max_{c_k}P(Y=c_k)\prod_jP(X^j=x^j|Y=c_k)
$$
arg是变元(自变量argument)的意思,arg max就是使后面这个式子达到最大值时变量的取值。朴素贝叶斯法将实例分到后验概率最大的类中,0-1损失函数时,这等价于期望风险最小化。
先验概率$P(Y=c_k)$的极大似然估计:
$$
P(Y=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)}{N}
$$条件概率$P(x^j=a_{jl}|Y=c_k)$的极大似然估计:
$$
P(X^j=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^j=a_{jl},y_j=c_k)}{\sum_{i=1}^NI(y_i=c_k)}
$$极大似然估计可能会出现所要估计的概率值为0的情况,这会影响到后验概率的计算结果,使分类产生偏差。解决方法是采用贝叶斯估计。
先验概率$P(Y=c_k)$的贝叶斯估计:
$$
P(Y=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)+\lambda}{N+K\lambda}
$$
其中K为$Y$的分类总数,$\lambda\geq0$,$\lambda=0$时为极大似然估计,常取$\lambda=1$,称为拉普拉斯平滑。条件概率$P(x^j=a_{jl}|Y=c_k)$的贝叶斯估计:
$$
P(X^j=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^j=a_{jl},y_j=c_k)+\lambda}{\sum_{i=1}^NI(y_i=c_k)+S_j\lambda}
$$
其中$S_j$为特征$a_j$的取值个数。
2. 总结
似然估计、贝叶斯估计是概率统计中最为常用的估计方法。而朴素贝叶斯假设特征独立,以牺牲较小性能为代价,大大降低了模型复杂度,从训练样本中,生成先验概率和条件概率,并求取后验概率最大的类型作为最后的输出类型,这是一个典型的生成模型。后验概率最大在0-1损失函数下,等价于期望损失最小化。
实际上期望损失最小化,统计学习中的的终极目标,为了这个目标,若期望损失可以求得,则直接使用期望损失最小化,作为学习策略;若期望损失不可得,则使用经验损失最小化,作为学习策略;而在经验损失(误差损失)最小化的过程中,往往出现过拟合现象,即为了最小化经验损失,而造成模型过于复杂,测试误差较大的情况。因此又可会引入正则项,进行正则化处理,形成结构损失,在经验损失和模型复杂度之间寻找平衡。或者使用交叉验证的方法,在使用经验损失最小化训练出的多个模型中,选择最优模型。