iT邦幫忙

2023 iThome 鐵人賽

DAY 5
2
AI & Data

ML From Scratch系列 第 5

[Day 5] Naive Bayes — 背後理論

  • 分享至 

  • xImage
  •  

Prerequisite

單純貝氏分類器 (Naive Bayes) 是以貝氏定理來解決機器學習上的分類問題。

不免俗在機器學習上,如何估計模型參數是一大重點,而這裡是透過最大概似估計 (Maximum likelihood estimation) 來解決這個問題。

Maximum likelihood estimation (MLE)

最大概似估計是一個估計機率模型中母數的方法。

這裡先定義一個已知的機率分佈 https://chart.googleapis.com/chart?cht=tx&chl=D,其機率函數為 https://chart.googleapis.com/chart?cht=tx&chl=f_D,而分佈母數為 https://chart.googleapis.com/chart?cht=tx&chl=%5Ctheta

如何求出 likelihood function ?
我們從機率分佈 https://chart.googleapis.com/chart?cht=tx&chl=D 中,抽出 https://chart.googleapis.com/chart?cht=tx&chl=n 個值,https://chart.googleapis.com/chart?cht=tx&chl=X_1%2C%20X_2%2C%20%5Cdots%2C%20X_n,並透過 https://chart.googleapis.com/chart?cht=tx&chl=f_D 來計算:

https://chart.googleapis.com/chart?cht=tx&chl=L(%5Ctheta%20%5Cmid%20x_1%2C%20%5Cdots%2C%20x_n)%20%3D%20f_%5Ctheta%20(x_1%2C%20%5Cdots%2C%20x_n)

不論 https://chart.googleapis.com/chart?cht=tx&chl=D 為離散分佈或是連續分佈,最大概似估計會尋找關於 https://chart.googleapis.com/chart?cht=tx&chl=%5Ctheta 的最可能的值,而這個值會使得概似函數取到最大值。

其中,https://chart.googleapis.com/chart?cht=tx&chl=%5Chat%7B%5Ctheta%7D 即是 https://chart.googleapis.com/chart?cht=tx&chl=%5Ctheta 的最大概似估計。但也要注意,最大概似估計不一定存在,也不一定唯一。

Bayesian probability

貝氏機率 (Bayesian probability) 是透過機率來解釋貝氏定理。

貝氏定理
在已知一些條件下,某一事件的發生機率。例如在事件https://chart.googleapis.com/chart?cht=tx&chl=B發生事件https://chart.googleapis.com/chart?cht=tx&chl=A的機率。
這裡先定義隨機事件 https://chart.googleapis.com/chart?cht=tx&chl=Ahttps://chart.googleapis.com/chart?cht=tx&chl=B
https://chart.googleapis.com/chart?cht=tx&chl=P(A%20%5Cmid%20B)%20%3D%20%5Cfrac%7BP(A)P(B%20%5Cmid%20A)%7D%7BP(B)%7D
其中,https://chart.googleapis.com/chart?cht=tx&chl=P(A%20%5Cmid%20B)https://chart.googleapis.com/chart?cht=tx&chl=A 的後驗機率,https://chart.googleapis.com/chart?cht=tx&chl=P(A)https://chart.googleapis.com/chart?cht=tx&chl=A 的先驗機率。

Goal

Naive Bayes 是一種建分類器的方法,主要透過特徵之間強獨立下,運用貝氏定理來分類各式類別。

Background

如先前提及,貝式定理是描述某已知條件下,另一個事件發生的機率。

透過此定理而進行分類任務的模型可以被定義為

https://chart.googleapis.com/chart?cht=tx&chl=p(C%20%5Cmid%20F_1%2C%20%5Cdots%2C%20F_n)

而此可以依照貝式定理等價於

https://chart.googleapis.com/chart?cht=tx&chl=p(C%20%5Cmid%20F_1%2C%20%5Cdots%2C%20F_n)%20%3D%20%5Cfrac%7Bp(C)p(F_1%2C%20%5Cdots%2C%20F_n%20%5Cmid%20C)%7D%7Bp(F_1%2C%20%5Cdots%2C%20F_n)%7D

即是

https://chart.googleapis.com/chart?cht=tx&chl=%5Ctext%7Bposterior%7D%20%3D%20%5Cfrac%7B%5Ctext%7Bprior%7D%20%5Ctimes%20%5Ctext%7Blikelihood%7D%7D%7B%5Ctext%7Bevidence%7D%7D

其中分子的部份可以等價於聯合分佈模型 https://chart.googleapis.com/chart?cht=tx&chl=p(C%2C%20F_1%2C%20%5Cdots%2C%20F_n)

接著使用連鎖律

https://chart.googleapis.com/chart?cht=tx&chl=%5Cleft.%5Cfrac%7Bd%20g%5Bf(x)%5D%7D%7Bd%20x%7D%5Cright%7C_%7Bx%3Da%7D%3D%5Cleft.%5Cleft.%5Cfrac%7Bd%20g(y)%7D%7Bd%20y%7D%5Cright%7C_%7By%3Df(a)%7D%20%5Ccdot%20%5Cfrac%7Bd%20f%7D%7Bd%20x%7D%5Cright%7C_%7Bx%3Da%7D

便可以將此寫成條件機率

https://ithelp.ithome.com.tw/upload/images/20230905/20152821AS8lPPamHW.png

由於可能計算的特徵數量過多,為了計算後驗機率上的方便,這裡必須先假設特徵之間獨立,但也讓分類準確率下降一些,變得像是一種估計機率後分類的概念。

如此一來,有特徵相互獨立的條件後,可以將此模型表示為

https://ithelp.ithome.com.tw/upload/images/20230905/20152821EoilNZL61B.png

而類別變數https://chart.googleapis.com/chart?cht=tx&chl=C條件分佈可以寫成

https://chart.googleapis.com/chart?cht=tx&chl=p(C%20%5Cmid%20F_1%2C%20%5Cdots%20F_n)%20%3D%20%5Cfrac%7B1%7D%7BZ%7D%20p(C)%20%5Cprod%20%5Climits_%7Bi%3D1%7D%5En%20p(F_i%20%5Cmid%20C)

這裡的 https://chart.googleapis.com/chart?cht=tx&chl=Z 是會依據 https://chart.googleapis.com/chart?cht=tx&chl=F_1%2C%20%5Cdots%2C%20F_n 改變的常數。

依據機率模型來建造分類器

藉由上述獨立分佈的特徵模型,我們可以將此視為 Naive Bayes 的模型,並透過最大事後機率(MAP)決策準則,來建構分類器,如下

https://chart.googleapis.com/chart?cht=tx&chl=%5Ctext%7Bclassify%7D(f_1%2C%20%5Cdots%2C%20f_n)%20%3D%20%5Carg%20%5Cmax_c%20p(C%20%3D%20c)%20%5Cprod%20%5Climits_%7Bi%3D1%7D%5En%20p(F_i%20%3D%20f_i%20%5Cmid%20C%20%3D%20c)

/images/emoticon/emoticon37.gif

明天就要開始開發 Navie Bayes Classifier 的演算法了!!!

Reference

歡迎更仔細閱讀以下相關內容以了解本篇知識


上一篇
[Day 4] Polynomial Regression — 解決真實問題
下一篇
[Day 6] Naive Bayes — 主題實作
系列文
ML From Scratch31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言