當前位置: 華文世界 > 科學

監督式機器學習方法——樸素貝葉斯

2024-04-01科學

樸素貝葉斯是一種監督式機器學習方法,是機率分類器家族的成員。它使用貝葉斯定理套用了一種樸素的方法。「幼稚」一詞的含義是假設每個特征都獨立於另一個特征。

條件機率

條件機率是基於另一個事件的發生而發生的事件的機率。

假設調查了我們的同事。誰是IOS的狂熱者,誰是熱愛Android的替代品?

雖然有些人選擇了其中任何一個選項,但有兩個人優柔寡斷,表達了對兩者的強烈偏好。與此同時,其他人投了棄權票

現在讓找出喜歡 Android 的人喜歡 IOS 的機率。

在 18 人中,9 人更喜歡 iOS,3 人兩者都喜歡。計算條

件機率得到的結果為 0.33。

貝葉斯定理

貝葉斯定理以統計學家湯瑪斯·貝葉斯的名字命名。貝葉斯定理的特點是其公式,它有助於根據新資訊更新預測或假設。這是透過使用條件機率來實作的。

多項式樸素貝葉斯

多項式樸素貝葉斯演算法廣泛套用於文本分類問題。這種方法使用貝葉斯理論計算每個類別的機率,並返回具有最大機率的類別作為結果。這裏的「樸素」一詞表示特征間的獨立性。也就是說,樸素貝葉斯在評估句子時不考慮單詞的順序。

考慮過濾電子信件中垃圾信件的任務。在這種情況下,采用監督學習方法,擁有常規和垃圾信件的樣本。已經計算了這些範例中的單詞。例如,在常規電子信件中,總共有 17 個單詞,「親愛的」這個詞出現了 8 次。

計算每個單詞的條件機率:

P(Dear|Normal) = 8 / 17 = 0.47

假設我們收到一條新訊息,上面寫著「午餐會議」:

我們從對這兩種情況的初步預測開始。電子信件正常的機率 P(N) 由正常電子信件數與訓練集中電子信件總數的比率決定。訓練數據中有 8 封普通電子信件和 4 封垃圾信件。因此,P(N) = 8 / 12 = 0.67。在這裏做出的初步猜測稱為先驗機率。

P(N) * P(Lunch|N) * P(Meeting|N) = 0.67 * 0.18 * 0.29 = 0.034

可以將 0.034 視為午餐會議在普通信件中得到的分數。

P(S) * P(Lunch|S)*P(Meeting|S) = 0.33 * 0 * 0.14 = 0

「午餐」一詞不會出現在訓練數據集中的任何垃圾信件中。因此,如果電子信件中存在「午餐」,則無論電子信件的實際性質如何,其垃圾信件分數都將自動為零。為了解決這種情況,將一個預定義的數位(表示為 alpha 值)添加到所有樣本中。通常,此值設定為 1。

P(N) * P(Lunch|N) * P(Meeting|N) = 0.67 * 0.19 * 0.29 = 0.037

P(S) * P(Lunch|S)*P(Meeting|S) = 0.33 * 0.09 * 0.18 = 0.005

由於普通信件的分數高於垃圾信件的分數,因此將信件歸類為正常信件(0.037 > 0.005)。

高斯樸素貝葉斯

高斯樸素貝葉斯用於連續數據,並利用高斯(正態)分布。

假設有 3 個特征,財富、年齡和每日糖攝入量。試圖了解這些人是否喜歡打籃球。我們有每個特征的高斯分布:

為了做出預測,從最初的猜測開始。我們在訓練數據集中有 16 人的數據,其中一半人喜歡打高爾夫球。將預測一個擁有 400 個財富單位、40 個年齡和 25 個糖消費單位的人。(我只是編造了這些數位)。

先驗機率:

P(Likes Golf) = 8 / 16 = 0.5

P(~Likes Golf) = 0.5

然後,計算給定人員的每個特征的可能性。

Likes Golf Score = 0.5 * L(Wealth|Likes) * L(Age|Likes)*L(Sugar|Likes)

從高斯正態分布中獲得似然值。它是曲線上的 y 軸座標,對應於 x 軸座標。

例如,對於Wealth = 400, L(Wealth|Likes) would be 0.06

Likes Golf Score = 0.5 * 0.06 * 0.004 * 0.0…0000000001

為了處理較小的似然值,通常對所有內容進行對數。

ln(Likes Golf Score) = ln(0.5 * 0.06 * 0.004 * 0.0…0000000001)

ln(Likes Golf Score) = ln(0.5) + ln(0.06) + ln(0.004) + ln(0.0…0000000001)

ln(Likes Golf Score) = -124

ln(~(Not)Likes Golf Score) = ln(0.5) + ln(0.0…0000000001) + ln(0.000079) + ln(0.02)

ln(~Likes Golf Score) = -48

鑒於表示不喜歡高爾夫的分數高於喜歡高爾夫的分數,將個人歸類為不喜歡打高爾夫球的人。