朴素贝叶斯
简介:朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于“特征条件独立”的假设学习输入/输出的联合概率分布。然后基于此模型,对给定输入x,利用贝叶斯定理求后验概率最大的y。
朴素贝叶斯实现简单,学习与预测的效率都很高,是一种常用的方法。
基本方法:朴素贝叶斯方法通过训练数据集学习联合概率分布(P(X, Y))。具体地,学习以下先验概率分布及条件概率分布,从而学习到联合概率分布。
先验概率分布
[P(Y=c_k), k = 1,2, ..., K
]
条件概率分布
[P(X=x | Y = c_k) = P( X = (x^{(1)}, x^{(2)}, ..., x^{(n)}) | Y = c_k), k = 1,2, ..., K
]
当时条件概率分布中有指数级数量的参数,其估计实际是不可行的。假设(x^{(j)})可取值(S_j)个,那么参数个数为(Kprod_{j=1}^{n} S_j)。
特征条件独立的假设:朴素贝叶斯假设“用于分类的特征在类确定的条件下是条件独立的”。这是一个较强的假设,它使得算法变得简单(因此称为“朴素”),但有时会牺牲一定的分类准确率。
[egin{split}P(X= x | Y = c_k) &= P(x^{(1)}, x^{(2)}, ..., x^{(n)} | Y = c_k) \ &= prod_{j=1}^{n} P(X^{(j)} = x^{(j)} | Y = c_k) end{split}
]
朴素贝叶斯分类
贝叶斯定理
[egin{split} P(Y | X) &= frac{P(Y) P(X|Y)}{P(X)} \ &= frac{P(Y) P(X|Y)}{sum_YP(Y) P(X|Y)}end{split}
]
分类
分类时,对给定的输入(x),通过学习到的模型计算后验概率分布(P(Y=c_k | X = x)),将后验概率最大的类作为(x)的类输出。
[egin{split} 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)} \
&= 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)} end{split}]
于是朴素贝叶斯分类器可表示为
[y = f(x) = arg max_{c_k} P(Y = c_k | X = x)
]
注意到分母对所有(c_k)都相同,可以去掉,最终有:
[y = arg max_{c_k} P(Y = c_k) prod_j P(X^{(j)}=x^{(j)} | Y = c_k)
]
极大似然估计
极大似然估计:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值,是一种参数估计方法。
朴素贝叶斯中,学习意味着(P(Y=c_k))和(P(X^{(j)} = x^{(j)}| Y = c_k))。
可以用极大似然估计来估计相应的概率。
[P(Y=c_k ) = frac{sum_{i=1}^{N} I(y_i = c_k)}{N}
]
设第(j)个特征(x^{(j)})可能取值的集合为({a_{j1}, a_{j2}, ..., a_{jS_j}})。
[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)}
]
贝叶斯估计:极大似然估计可能会出现所要估计的概率值为0的情况。这时会影响到后验概率的计算结果,使分类产生偏差。解决这一问题的方法是采用贝叶斯估计。
[P_{lambda}(Y = c_k) = frac{sum_{i=1}^{N} I(y_i = c_k) + lambda}{N + k lambda}
]
[P(X^{(j)} = a_{jl} | Y = c_k) = frac{sum_{i=1}^{N} I(x_i^{(j)} = a_{jl}, y_i = c_k) + lambda}{sum_{i=1}^{N}I(y_i = c_k) + S_j lambda}
]
(lambda=0)时称为极大似然估计,(lambda=1)时称为拉普拉斯平滑。