1. 程式人生 > >貝葉斯和樸素貝葉斯是啥

貝葉斯和樸素貝葉斯是啥

[toc] # 一、貝葉斯 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330150256411-882602630.png) 簡單地說,貝葉斯就是貝yes,見到貝克漢姆說了一句yes,研究的是這種概率事件。 開玩笑啦,貝葉斯原理是英國數學家托馬斯·貝葉斯提出的,為了解決一個“逆概率”問題。 例如,一個男人發現了他老婆手機裡曖昧簡訊 ,計算他老婆出軌的概率。 現實生活中,我們很難知道事情的全貌,當不能準確預知一個事物本質的時候,可以依靠和事物本質相關的事件來進行判斷。 ## 什麼是先驗概率、似然概率、後驗概率 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330150300337-1212202741.png) 貝葉斯原理類似概率反轉,通過先驗概率和似然概率,推匯出後驗概率。 再以上面出軌的例子為例, * 先驗概率:男人的老婆沒有任何情況,出軌的概率 * 似然概率:男人的老婆出軌了,手機裡有曖昧簡訊的概率 * 後驗概率:男人發現老婆手機有曖昧簡訊,計算他老婆出軌概率 再舉個例子,產品由不同的工廠ABC生產,每個工廠都有自己的次品率 * 先驗概率:A廠的產品佔產品總數的比例 * 似然概率:A廠的次品率 * 後驗概率:已知一件產品是次品,推斷這件產品來自在A廠的概率。(次品可能來自ABC中任意一個廠) >似然概率是由假設正推結果,後驗概率是由結果倒推假設 ## 公式推導 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330154602730-1341624706.png) * $P(A|B)$:表示事件B已經發生的前提下,事件A發生的概率,叫做事件B發生下事件A的條件概率。 * $P(AB)$:表示事件A和事件B同時發生的概率 * $P(AB)=P(BA)$,可得$P(AB)=P(BA)=P(B|A)P(A)=P(A|B)P(B)$ * 通過$P(A|B)$來求$P(B|A)$,可得$P(B|A)=\frac {P(A|B)P(B)} {P(A)}$ * 分母$P(A)$可以根據全概率公式分解為:$P(A)=\sum_{i=1}^n P(B_i)P(A|B_i)$ * 最終公式變為:$P(B|A)=\frac {P(A|B)P(B)} {\sum_{i=1}^n P(B_i)P(A|B_i)}$ # 二、為什麼需要樸素貝葉斯 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330155135220-897010064.png) 假設訓練資料的屬性由n維隨機向量x表示,分類結果用隨機變數y表示,那x和y的統計規律就可以用聯合概率分佈$P(X,Y)$描述,每個具體的樣本$(x_i,y_i)$都可以通過$P(X,Y)$獨立同分布地產生。 貝葉斯分類器的出發點是聯合概率分佈,根據條件概率性質可以得到 $P(X,Y)=P(Y)⋅P(X∣Y)=P(X)⋅P(Y∣X)$ * $P(Y)$:每個類別出現的概率,先驗概率 * $P(X|Y)$:給定的類別下不同屬性出現的概率,似然概率 先驗概率很容易計算出來,只需要統計不同類別樣本的數目即可,而似然概率受屬性數目的影響,估計較為困難。 例如,每個樣本包含100個屬性,每個屬性的取值可能有100種,那分類的每個結果,要計算的條件概率是$100^2=10000$,數量量非常龐大。因此,這時候引進了樸素貝葉斯 # 三、樸素貝葉斯是什麼 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330150322967-1469681338.png) 樸素貝葉斯,加了個樸素,意思是更簡單的貝葉斯。 樸素貝葉斯假定樣本的不同屬性滿足條件獨立性假設,並在此基礎上應用貝葉斯定理執行分類任務。 >對於給定的待分類項x,分析樣本出現在每個類別中的後驗概率,將後驗概率最大的類作為x所屬的類別 ## 條件獨立 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330155213778-1735720718.png) 要解決似然概率難以估計的問題,就需要引入`條件獨立性假設`。 條件獨立性假設保證了所有屬性相互獨立,互不影響,每個屬性獨立地對分類結果發生作用。 這樣條件概率變成了屬性條件概率的乘積 $P(X=x∣Y=c)=$ $P(X(1)=x(1),X(2)=x(2),⋯,X(n)=x(n)∣Y=c)$ $\prod_{j=1}^nP(X^j=x^j|Y=c)$ 這是樸素貝葉斯方法,有了訓練資料集,先驗概率$P(Y)$和似然概率$P(X|Y)$就可以求解後驗概率$P(X|Y)$。 >給定的輸入x,樸素貝葉斯分類器利用貝葉斯定理求解後驗概率,並將後驗概率最大的類作為輸出 ## 舉例:長肌肉 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330155550863-2010100952.png) 肌肉是訓練、睡眠、飲食多種因素組合的結果 訓練 | 睡眠 | 飲食 -|-|- 非常好 | 非常好 | 非常好 | 好 | 好 | 好 | 一般 | 一般 | 一般 | 不太好 | 不太好| 不太好 | 不好 | 不好| 不好 | 非常不好 | 非常不好| 非常不好 | 如果要計算後驗概率,假設屬性不獨立,$6^3$就有了216組合,例如其中一種是`訓練:好,睡眠:不好,包含:一般`,這樣的全部組合出來複雜度太高了 如條件獨立互不影響後,只需要考慮3個維度的結果,把最終的屬性概率相乘,例如是80%(訓練) * 85%(睡眠) * 90%(飲食),算複雜度降低了幾個數量級。 ## 拉普拉斯平滑 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330151525002-2010547728.png) 受訓練資料集規模的限制,某個屬性的取值可能在訓練集中從未與某個類同時出現,這就可能導致屬性條件概率為0,些時直接使用樸素貝葉斯分類就會導致錯誤的結論。 例如:在訓練集中沒有樣本同時具有“年齡大於 60”的屬性和“發放貸款”的標籤,那麼當一個退休人員申請貸款時,即使他是李嘉誠,樸素貝葉斯分類器也會因為後驗概率等於零拒絕。 因為訓練集樣本的不充分導致分類錯誤,不是理想的結果,為了避免這種干擾,在計算屬性條件概率時需要新增一個“拉普拉斯平滑”的步驟。 拉普拉斯平滑就是計算類先驗概率和屬性條件概率時,在分子上新增一個較小的修正量,在分母上則新增這個修正量與分類數目的乘積,避免了零概率對分類結果的影響。 ## 半樸素貝葉斯 ![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330155306474-1111219633.png) 屬性之間可能具有相關性,而樸素貝葉斯獨立假設性會影響分類效能。 `半樸素貝葉斯分類器`考慮了部分屬性之間的依賴關係,既保留了屬性之間較強的相關性,又不需要完全計算複雜的聯合概率分佈。 常用方法是建立獨依賴關係:假設每個屬性除了類別之外,最多隻依賴一個其他