xindoo is
always here

sklearn 朴素贝叶斯

朴素贝叶斯是基于贝叶斯理论的一种监督学习算法,『朴素』意思是假设所有特征两两相互独立,给出类别y和一组依赖特征[x1..xn],根据贝叶斯理论,他们有如下的关系。

$$
P(y|x_1,…x_n) = \frac{P(y)P(x_1,…x_n|y)}{P(x_1,…x_n)}
$$

根据贝叶斯独立性假设

$$
P(xi|y, x1,…,x_{i-1},…,x_n)=P(x_i|y)
$$

对于所有的i,关系可以简化为

$$
P(y|x_1,…x_n) =\frac{P(y)\prod^n_{i=1}P(x_i|y)}{P(x_1,….,x_n)}
$$

因为P(x1,…,xn)}是给出的,所以我们可以做如下的近似

$$
P(y|x_1,…x_n) =\frac{P(y)\prod^n_{i=1}P(x_i|y)}{P(x_1,….,x_n)}
$$
$$
\widehat{y} = arg \max_{y}P(y)\prod^n_{i=1}P(x_i|y)
$$

我们可以用最大后验估计去估计P(Y)和P(xi | y),前者的相对频率可以通过训练数据集计算出来。

不同的朴素贝叶斯分类器的差异主要在于用了不同的关于P(xi|y)分布的假设。

尽管朴素贝叶斯过于简化假设,但在实际文件分类和垃圾邮件过滤中分类效果相当不错。朴素贝叶斯只需要少量的训练数据来估计必要的参数。(朴素贝叶斯效果好以及它适合哪种类型的数据理论解释,可参考下面的文献)

朴素贝叶斯学习器和分类器和一些复杂的方法相比,可以做到非常快。每个特征分布的解耦,意味着每个分布可以独立地当成一维去估计。这反过来又有助于缓解来自维数灾难的问题。

另一方面,虽然朴素贝叶斯以分类器著称,但它是一个坏的估计,所以不必计较从predict_proba得到的概率输出。

References:

H. Zhang (2004). The optimality of Naive Bayes. Proc. FLAIRS.

赞(0) 打赏
未经允许不得转载:XINDOO » sklearn 朴素贝叶斯
分享到: 更多 (0)

评论 抢沙发

xindoo

联系我联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏