寫在前面的話
前面用了三篇內容講了決策樹算法,也算是淺入淺出了,對於入門來說還是足夠的
學完之後,你應該已經掌握了:
決策樹理論+算法優缺點+建立決策樹+參數優化
如果你還沒有掌握決策樹的這些技能點,根據貝葉斯原理你有90%的概率也掌握不了這篇🐶
假設你已經掌握了上面決策樹的內容,那麼學完這篇你會掌握以下技能:
- 一種新的分類算法(貝葉斯分類)
- 一個很有名氣的概率計算公式
- 隨時隨地計算下一頓喫火鍋的概率🐶
準備好了嗎?
情景一:一起喫個飯吧
在許媒婆的有意撮合
之下,韓梅梅的第一個相親對象竟然是老同學李雷雷
強忍住自己內心小九九的韓梅梅終於接到了李雷雷的邀請
李雷雷: 梅梅,明天有空嗎?一起出去喫個飯?
李梅梅: (略一思考)剛好明天也沒啥事,我們喫什麼呢?
李雷雷: 好嘞,那我們就根據明天的天氣決定喫什麼吧
李梅梅: (喫什麼要根據天氣決定?不應該根據我的喜好?)
感覺到一絲異樣的李雷雷連忙補充道:
李雷雷: 別急別急,你先聽我說完
是這樣的,從今年年初開始,一共有20天是下雨天,這20天裏面有15天你是在家裏喫飯,其中有9頓是在家打火鍋,有5天是不在家喫飯,這5天有一天是去和朋友去外面喫火鍋。
所以呢,如果明天下雨,根據歷史數據,你可能最想喫火鍋噢。
韓梅梅: (俏臉微紅)你怎麼會知道這個數據?許姨不是說不告訴外人嘛
李雷雷: (嘿嘿一笑)如果明天下雨了,在家喫火鍋?
韓梅梅: 好啊好啊,你怎麼會知道我這樣想的?
李雷雷: 因爲我會計算正向概率!
一共20天,其中15天在家喫飯,所以在家喫飯的概率:15/20=75%
而且啊,15天裏面有9天在家喫火鍋,在家喫火鍋的概率:9/15=60%
另外啊,不在家喫火鍋的概率:1/5=20%
韓梅梅: 厲害!不過你說的正向概率是什麼?
上面的問題就是正向概率
,表示從前往後推導一件事情發生的概率,你可能還聽過一個詞:先驗概率,它兩一回事
對了,還有一個是條件概率
,例如 P(喫火鍋|在家喫) 表示在家喫飯的時候喫火鍋
相應的逆向概率就是從反向推理事物發生的概率,也叫後驗概率
李雷雷: 給你出道題,如果明天喫火鍋,那明天在家喫的概率是多少?算對了明天就去喫火鍋!
韓梅梅: …(準備打人了)
哈哈哈哈,算不出來別生氣,我們這裏就用到了逆向概率。
貝葉斯原理
來,一起理一下思路:
我們知道,在家喫飯的概率 :
在家喫火鍋的概率:
另外還有,不在家喫飯的概率 :
不在家喫火鍋的概率 :
這裏,有兩點需要注意一下:
在家喫火鍋≠在家的時候喫火鍋
不在家喫火鍋≠不在家的時候喫火鍋
因爲後者是一個聯合概率,表示(不)在家的條件下喫火鍋
所以後者可以這樣表示:
那麼我們可以算出來,下雨天喫火鍋的概率:
回到我們的問題,今天喫火鍋的條件下,在家喫的概率是:
韓梅梅: 好高啊,我有點懷疑這個數字
那我們也可以反向驗證一下:
喫火鍋一共10次,在家喫9次,不在家喫1次,所以在家喫的概率是90%
李雷雷: 算不出來沒關係,我這有一個萬能公式
韓梅梅: 快、快告訴我
我們直接另 喫火鍋=B,在家喫=,不在家喫=,整理一下就是大名鼎鼎的貝葉斯公式:
因爲喫火鍋只有兩種情況,在家喫和在不在家喫,剛好對應了分母中的兩種情況。
於是貝葉斯公式經常這樣寫:
似然函數
其實這裏還有一個知識點,叫做似然函數,以及最大似然估計,我直接貼過來以前的文章,都有寫過:貝葉斯的相關概念
以下是摘錄:
似然卻剛好與概率相反,是在已經確定的結果下推測產生這個結果的可能參數θ。注意,是已經確定了結果的前提下。
還是拋硬幣的例子:
隨機拋一枚硬幣100次,結果出現60次數字朝上,那我們去判斷這枚硬幣的時候發現這並不是一枚標準的硬幣,因爲數字朝上的概率60%>人頭朝上的概率40%。
我們運用出現的結果去判斷事情本身的性質(參數),也就是似然。
情景二:喫什麼我說了算!
樸素貝葉斯
韓梅梅: 我記得在學校裏面老師還教過樸素貝葉斯,那又是什麼?
之所以稱爲樸素貝葉斯,是因爲它假設每個輸入變量是獨立的
就比如高富帥三個特徵之間互不影響,帥的不一定高,高的不一定富
於是,求一個人高富帥的概率:
通過樸素貝葉斯預測概率的時候,只需要用數據訓練一個貝葉斯模型,其實也就是計算出先驗概率和條件概率,然後貝葉斯就可以預測出後驗概率來。
就好比明天下雨了我們要不要喫火鍋呢?在家喫還是去外面喫呢?都可以通過樸素貝葉斯算出概率
韓梅梅: 喫!我說了算!和貝葉斯無關
李雷雷: 好好好
你別看現在我們是用來做預測,其實貝葉斯最適合解決分類問題
舉幾個例子你就知道了:
垃圾郵件你應該有了解過,貝葉斯通過前期的系列訓練,可以將未來的郵件進行分類(正常or垃圾)
世界盃比賽球隊的輸贏預測,通過歷史球隊戰績預測最終的輸贏,也是通過貝葉斯實現的
在實際分類過程中,貝葉斯分類主要包括兩種:離散數據的分類和連續數據的分類
離散數據的分類
離散數據的分類根據…
韓梅梅: 別急別急,你先告訴我什麼是離散數據?
離散數據是有明確邊界的數據,就像身高的高中低,成績的排名1234等,像1~100之間的任何數組組成的數據集就是連續數據。
離散數據的分類是根據貝葉斯定理實現,特別是樸素貝葉斯的應用
看個例子唄,如果說現在有一個人的特徵是:身高中、體重中、鞋碼大 ,這個人是男的還是女的?請你來分個類
ok,我們先確定一下屬性:
=身高中,=體重中,=鞋碼小,=男,=女
我們的目的是計算和,對應概率大的就是結果了
前面已知貝葉斯公式:
分母都一樣,那我們直接比較分子就行了
又根據樸素貝葉斯:
直接計算:
第二個結果對應的是女孩子,那就是她了
連續數據的分類
連續型數據的進行分類一般有兩種方法,先看數據集:
一種方法是我們將連續型數據轉換爲離散型
比如說體重特徵我們設置幾個範圍T1(100-120),T2(120-140)…這樣子連續型數據映射在相應範圍,實現離散化
按照上面離散化的處理方式即可
另一種方式是我們假設身高、體重、鞋碼都是正態分佈,通過樣本計算出均值和方差
還記得正態分佈的密度函數嗎,我們把點的值帶進去,就能得到相應的概率值。
韓梅梅: 沒看出來貝葉斯公式這麼厲害!
李雷雷: 哈哈,那是,用處也挺大的呢。另外我已經預約好了座位,明天不見不散!
總結一下
理解貝葉斯算法之前先了解貝葉斯定理,也就是後驗概率的計算;在此基礎上,通過了解樸素貝葉斯的特性,對離散和連續數據進行分類操作。
相比而言,樸素貝葉斯簡單很多,算法應用也很簡單,下節通過項目我們一起實戰一下貝葉斯分類。
貝葉斯算法的優缺點
優點:
-
對待預測樣本進行預測,過程簡單速度快
-
對於多分類問題同樣有效,複雜度也並不會有大程度提升
-
在分佈獨立這個假設的情況下,貝葉斯分類器效果奇好
-
對於類別類的輸入特徵變量,效果奇好;對於連續型變量特徵,默認符合正態分佈
缺點:
-
測試集中的一個類別變量,訓練集中沒出現過,則概率爲0,預測就沒用了。
可以使用平滑操作(拉普拉斯平滑) -
樸素貝葉斯獨立分佈的假設,實際生活中很難完全獨立
-
樸素貝葉斯不存在bagging、boosting等模型融合的方法(因爲沒有variance可以減少)
最後,請收下這個吧
思維導圖會被後臺二壓,不介意的同學在原文鏈接中獲取
原文鏈接: 大話系列 | 貝葉斯(上)—下雨天喫什麼?
寫在後面的話
貝葉斯分類主要是那幾個公式,大家理解了就好,不算是特別難,所以我就直接貼公示出來了
千萬不要一看見公式就自我放棄,稍微用點心思去看,你收穫的肯定不止是一個算法。
我是小一,我們 下節見
文章首發:公衆號【知秋小一】
文章同步:掘金,簡書,csdn
歡迎三連支持小一,持續更新中😀