1、背景
我們其實無時無刻不在使用樸素貝葉斯分類算法,只是沒有覺察到而已。比如在晚上走在燈光暗淡的路上,前面出現一個人影??赡苁悄?女的概率分別是50%。但假如能看出其頭發為長發時,你可能會猜這個人是女生的概率為90%。這就是樸素貝葉斯算法的簡單應用。
2、貝葉斯概率公式
(1)條件概率:
由以上文氏圖來理解條件概率的定義:就是指在B事件發生的情況下,事件A發生的概率,表示為P(A|B),由圖得出條件概率的計算公式為:P(A|B)=P(AB)/P(B)。
(2)乘法公式
由條件概率公式可得:P(AB)=P(A|B)P(B)=P(B|A)P(A) ,這就是乘法公式,其推廣的形式為?P(A1A2...An-1An)=P(A1)P(A2|A1)P(A3|A1A2)...P(An|A1A2...An-1)(N>=2)
(3)全概率公式
繼續文氏圖:
圖中A、A'是互斥事件,且共同構成樣本空間S。那么B則可通過如下表達取得:P(B)=P(BA)+P(BA'),再由剛才的乘法公式得:P(B)=P(B|A)*P(A)+P(B|A')*P(A')
正式的表達為:假設B1、B2...為互斥事件,且B1UB2...為S,則成為B1、B2...為樣本空間S的一個劃分,則全概率公式表達為:對于任意事件A
理解:全概率公式的意義是,當計算一個隨機事件A的概率時,可通過將A分割來計算。分割不是隨機的,而是在一個劃分B1、B2...中分割成AB1、AB2...,從而A=AB1+AB2+...,再由加法公式得:P(A)=P(AB1)+P(AB2)+...=P(A|B1)P(B1)+P(A|B2)P(B2)+...+P(A|Bn)P(PBn)
例如:某車間用甲、乙、丙三臺機床進行生產,各臺機床次品率分別為5%,4%,2%,它們各自的產品分別占總量的25%,35%,40%,將它們的產品混在一起,求任取一個產品是次品的概率。 解:設..... ? ? P(A)=25%*5%+4%*35%+2%*40%=0.0345
(4)貝葉斯概率公式的理解
這是上述條件概率公式的一個變形表達,其中P(A)成為先驗概率,即在事件B發生之前,事件A的概率判斷,或者事件A其實是事件B發生的原因;而P(A|B)稱之為后驗概率,即在事件B發生之后,我們再對導致事件B發生的原因A分析的重新評估。另外:P(B|A)/P(B)稱之為“可能性函數”,是一個調整因子,使得預估的概率更加接近于真實的概率。
即:后驗概率?。健∠闰灨怕?x 調整因子
所以貝葉斯公式的理解就是:先計算一下先驗概率,再集合實驗結果,形成調整因此,看實驗是增強還是削弱先驗概率,從而使得更接近真實概率的后驗概率。如果調整因子>1,則先驗概率被增強,事件A發生的概率更大;如果=1,則事件B的發生,無助于對先驗概率的判斷;如果<1;則先驗概率被削弱,事件A發生的概率變小。
3、貝葉斯公式如何應用于分類?
再回剛才通過人影識別男女的例子,我們來理解如何用貝葉斯公式來實現分類。
(1)假如
是一個待分類的項,其中a是各個屬性。就好比x是一個人影,具有如下特征,長發,身高165等等;
(2)
C為類別結果集,比如男、女
(3)
需要計算再x事件(人影)情況下,屬于類別y1、y2(男、女)的概率分別是多少;
(4)
計算的概率最大的值,就是最接近事實的概率值。
(5)計算
P(X)針對于各個類別的y都是相同值,因此在求最大值時可忽略計算,因此只需計算分子即可。又由于x的各個屬性在樸素貝葉斯定義下是互斥的,因此分子由可表達為
從而只需要計算各個屬性在各個類別中的概率P(aj|yi)即可。
(6)調整
上述分子的公式其實是M+1個概率值相乘,概率是0-1范圍的一個值,M+1個值相乘很有可能是一個極小的值,因此需要做一些調整才方便計算。
這種情況通常就是取log,反正只是求最大值,而不是取真實的值,而log又是遞增函數,因此不會影響取最大值的范圍。從而就把計算乘法轉為了計算m+1個值的加法。
4、文本分類的應用
《機器學習實戰》這本書給出的簡單例子就是用樸素貝葉斯算法來區分文本屬于侮辱、文明的分類,例如:
這是六個帖子提取的分詞,且已分好類別。當給出另一個文本時,可通過這個文本,結合貝葉斯算法給出文本的分類。
通過剛才計算分子的分類,在這里分類空間y為{侮辱、正常},x為單詞的集合。因此,P(aj|yi)就是一個分類中,沒個單詞出現的概率。具體的程序請參考和查詢該書。
5、補充
所以利用樸素貝葉斯算法基本流程就是:
其具備有點:在數據量較少仍然有效,計算相對簡單,對多分類仍有效。缺點:對數據類型、準備相對苛刻,屬較多時運算量大等問題。