『壹』 樸素貝葉斯
在所有的機器學習分類演算法中,樸素貝葉斯和其他絕大多數的分類演算法都不同。對於大多數的分類演算法,比如決策樹,KNN,邏輯回歸,支持向量機等,他們都是判別方法,但是樸素貝葉斯卻是生成方法。
如何理解這句話,看例題:
根據上述數據集,如果一對男女朋友,男生想女生求婚,男生的四個特點分別是不帥,性格不好,身高矮,不上進,請你判斷一下女生是嫁還是不嫁?
這里我們聯繫到樸素貝葉斯公式:
p(不帥、性格不好、身高矮、不上進|嫁) = p(不帥|嫁)*p(性格不好|嫁)*p(身高矮|嫁)*p(不上進|嫁)---------->要使這個公式成立,需要各個特徵之間相互獨立。
而樸素貝葉斯演算法就是假設各個特徵之間相互獨立。
1、假如沒有這個假設,那麼我們對右邊這些概率的估計其實是不可做的,這么說,我們這個例子有4個特徵,其中帥包括{帥,不帥},性格包括{不好,好,爆好},身高包括{高,矮,中},上進包括{不上進,上進},那麼四個特徵的聯合概率分布總共是4維空間,總個數為2*3*3*2=36個。36個,計算機掃描統計還可以,但是現實生活中,往往有非常多的特徵,每一個特徵的取值也是非常之多,那麼通過統計來估計後面概率的值,變得幾乎不可做,這也是為什麼需要假設特徵之間獨立的原因。
2、假如我們沒有假設特徵之間相互獨立,那麼我們統計的時候,就需要在整個特徵空間中去找,比如統計p(不帥、性格不好、身高矮、不上進|嫁)。我們就需要在嫁的條件下,去找四種特徵全滿足分別是不帥,性格不好,身高矮,不上進的人的個數,這樣的話,由於數據的稀疏性,很容易統計到0的情況。 這樣是不合適的。
根據上面倆個原因,樸素貝葉斯法對條件概率分布做了條件獨立性的假設,由於這是一個較強的假設,樸素貝葉斯也由此得名!這一假設使得樸素貝葉斯法變得簡單,但有時會犧牲一定的分類准確率。
所以公式整理以後變為:
整理訓練數據中,嫁的樣本數如下:
分別計算各個概率:
p(嫁) = 6/12(總樣本數) = 1/2
p(不帥|嫁) = 3/6 = 1/2
p(性格不好|嫁)= 1/6
p(矮|嫁) = 1/6
p(不上進|嫁) = 1/6
總樣本為:
p(不帥) = 4/12 = 1/3
p(性格不好) = 4/12 = 1/3
p(身高矮) = 7/12
p(不上進) = 4/12 = 1/3
將以上概率帶入公式,就能得出嫁的概率。
總結:理論上,樸素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此,這是因為樸素貝葉斯模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,在屬性個數比較多或者屬性之間相關性較大時,分類效果不好。
而在屬性相關性較小時,樸素貝葉斯性能最 為良好。