樸素貝葉斯
這是我見過最NB的算法!因爲它叫樸素貝葉斯(Naive Bayes,NB).與之前介紹的算法有所不同,NB是生成式算法,之前的爲判別式算法!
-
生成式算法:對p(x∣y)和p(y)進行建模,可以說是對p(x,y)進行建模,求出x,y的聯合分佈。
-
判別式算法:對p(y∣x)進行建模,相當於一個黑箱,給定一個數據集,直接根據數據集得到決策函數或規則。
NB是典型的生成式模型,利用訓練數據集學習到p(x∣y)和p(y)得到聯合概率分佈:
P(X,Y)=P(Y)P(X∣Y)
大前提
NB的基本假設是條件獨立性
P(X=x∣Y=ck)=P(X(1)=x1,X(2)=x2,...,X(n)=xn∣Y=ck)
由於這一假設,模型包含的條件概率的數量大爲減少,NB的學習與預測大爲簡化,因而性能上大幅提升。不過也帶來了一定的準確率問題。
表達式
樸素貝葉斯是利用貝葉斯定理與學到的聯合概論進行預測的:
P(Y∣X)=P(X)P(X,Y)=∑YP(Y)P(X∣Y)P(Y)P(X∣Y)
測試集的結果爲:
y=argmaxckP(Y=CK)j=1∏nP(Xj=xj∣Y=ck)