【基础不牢,地动山摇】朴素贝叶斯

朴素贝叶斯

这是我见过最NB的算法!因为它叫朴素贝叶斯(Naive Bayes,NB).与之前介绍的算法有所不同,NB是生成式算法,之前的为判别式算法!

  • 生成式算法:对 p ( x ∣ y ) p(x|y) p(xy) p ( y ) p(y) p(y)进行建模,可以说是对 p ( x , y ) p(x,y) p(x,y)进行建模,求出 x , y x,y xy的联合分布。

  • 判别式算法:对 p ( y ∣ x ) p(y|x) p(yx)进行建模,相当于一个黑箱,给定一个数据集,直接根据数据集得到决策函数或规则。

NB是典型的生成式模型,利用训练数据集学习到 p ( x ∣ y ) p(x|y) p(xy) p ( y ) p(y) p(y)得到联合概率分布:

P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y)=P(Y)P(X|Y) P(X,Y)=P(Y)P(XY)

大前提

NB的基本假设是条件独立性
P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x 1 , X ( 2 ) = x 2 , . . . , X ( n ) = x n ∣ Y = c k ) P(X=x|Y=c_k)=P(X^{(1)}=x^1,X^{(2)}=x^2,...,X^{(n)}=x^n|Y=c_k) P(X=xY=ck)=P(X(1)=x1,X(2)=x2,...,X(n)=xnY=ck)

由于这一假设,模型包含的条件概率的数量大为减少,NB的学习与预测大为简化,因而性能上大幅提升。不过也带来了一定的准确率问题。

表达式

朴素贝叶斯是利用贝叶斯定理与学到的联合概论进行预测的:

P ( Y ∣ X ) = P ( X , Y ) P ( X ) = P ( Y ) P ( X ∣ Y ) ∑ Y P ( Y ) P ( X ∣ Y ) P(Y|X)=\frac{P(X,Y)}{P(X)} = \frac{P(Y)P(X|Y)}{\sum_YP(Y)P(X|Y)} P(YX)=P(X)P(X,Y)=YP(Y)P(XY)P(Y)P(XY)

测试集的结果为:
y = a r g m a x c k P ( Y = C K ) ∏ j = 1 n P ( X j = x j ∣ Y = c k ) y=argmax_{c_k}P(Y=C_K)\prod_{j=1}^n P(X_j=x^{j}|Y=c_k) y=argmaxckP(Y=CK)j=1nP(Xj=xjY=ck)

你可能感兴趣的:(机器学习)