###### tags: `Machine learning` {%hackmd @kk6333/theme-sty1 %} # 貝氏分類器 Bayes classifier 貝氏分類器是一個很經典的傳統機器學習方法, 利用統計中的"貝式定理"來做分類 <br> ## 1. 貝氏定理 Bayes' theorem 貝氏定理是統計中的一個重要的理論, 用以描述條件機率 $P(A|B)$ 與 $P(B|A)$ 之間的關係 <font color="#A3A3A3">( 如果你學過統計那你應該知道此二機率不同 )</font> 關係如下 :::info #### 貝式定理 $$P(A|B)=\frac{P(B|A)P(A)}{P(B)}$$ ::: :::spoiler <font color="#FF3737">臭臭的推導</font> > #### 推導 > 已知關係式 : $P(A|B)P(B)=P(AB)$ // AB 指交集 > > $=>P(A|B)=\frac{P(AB)}{P(B)}$ > > $=>P(A|B)=\frac{P(BA)}{P(B)}$ > > $=>P(A|B)=\frac{P(B|A)P(A)}{P(B)}$ ::: <br> :::warning #### 舉個例子 條件 A : 性別為男生 - P(A) 條件 B : 身高 180 - P(B) $$P(A|B)=\frac{P(B|A)P(A)}{P(B)}$$ 用貝式定理就可得出 [已知身高 180 ,性別為男生的機率] 與 [已知為男生,身高 180 的機率] 間的關係 ::: <br> ## 2. 貝氏分類器 : 介紹 上述的貝氏定理為何能做分類問題呢 ? > 假設有 input ( x )、 分類類別 ( $\omega$ ) > 我們可以描述 " 某 input x 為某類別 ( $\omega_i$ ) 的機率如下 " > > - $P(\omega_i|x)$ > 那換個想法 <font color="#FB721E">***只要有 $P( x | \omega_i )$ 並利用貝氏定理,就可以得到在 x 情況下 $\omega_i$ 的機率 $P(\omega_i|x)$***</font>, > 假如是二分類會拿到 $P(\omega_1|x)$、$P(\omega_2|x)$ > $P(\omega_1|x) > P(\omega_2|x)$ 時此 x 就屬於第一類,反之第二類 > > <font color="#FB721E">**最後可以找出一個 Threshold $x_0$ 稱決策分界**</font> > $x_0$ 等於是在 x 中做了一分類的界線,用來分出不同的類別 <br>  <font color="#1A8FE7">此圖為二分類的情況,$R_1,R_2$ 代表不同類別的分布區域</font> <br> ## 3. 貝式分類器 : Error & Risk ### (2) Classification Error Probability - :question: : 承接上篇要如何尋找最好的決策分界 $x_0$ 呢 ? - :a: : 我們會計算一個 Error 機率值,並使此 Error 為最小時得到最佳 $x_0$ :::info **Error 機率定義 & 化簡 ( 以二分類為例 )** > error 定義是加總所有類別的本身機率,乘上 $p(x|w_i)$ 的分布總和 $$P_e = P(w_1)\int_{R_2}p(x|w_1)dx + P(w_2)\int_{R_1}p(x|w_2)dx$$ > 還可以利用貝式定理化簡 $$P_e = \int_{R_2}P(w_1|x)p(x)dx + \int_{R_1}P(w_2|x)p(x)dx$$ > 我們已知關係式 $P(w_1)=\int_{R_1}P(w_1|x)p(x)dx + \int_{R_2}P(w_1|x)p(x)dx$ > 帶入 Error 機率 $$P_e = \int_{R_1}P(w_2|x)p(x)dx + P(w_1) - \int_{R_1}P(w_1|x)p(x)dx$$ $$P_e = P(w_1) - \int_{R_1}(P(w_1|x)-P(w_2|x))p(x) dx$$ ::: > 因為 $P(w_1)$ 是定值 > 所以要讓 Error Probility 最小的方式就是 > > $P(w_1|x) > P(w_2|x)$ > > 但如果今天是用 $P(w_2)$ 進行代換則 > > $P(w_2|x) > P(w_1|x)$ > > 所以為求兩類別平衡,會要求出 > > $P(w_1|x) = P(w_2|x)$ > > 求出此關係式 x 就為 $x_0$ > 也證明了 $x_0$ 正好在兩分佈中間 <br> ### (3). Average Risk - :question: : 試想一個情況,如果今天要預測此人是否生病,用以上分類器會有什麼問題 ? - :A: : 被診斷出有無生病的機率會相同,但這兩個情況的危急性卻不能相提並論 會希望診斷為生病的機率高一些,畢竟小心為妙 這時會用到 Average Risk,就是在 Error Probility 中加入 "懲罰項 Penalty" 來調控 $x_0$ :::info **Average Risk 定義** > Average Risk,顧名思義是 risk 的平均,但這邊先講 Average Risk,再看個別 risk > > - 懲罰項 : $\lambda_{ij}$ > i : (預測的類別) , j : (正確的類別) $$r = \lambda_{12}P(w_1)\int_{R_2}p(x|w_1)dx + \lambda_{21}P(w_2)\int_{R_1}p(x|w_2)dx$$ > 個別來看 Risk,其實就是拿掉 $P(w_i)$ 加總不同的判斷結果機率 > 以 $r_1$ 為例,$r_1$ 意指類別 1 的 Risk $$r_1 = \lambda_{11}\int_{R_1}p(x|w_1)dx + \lambda_{12}\int_{R_2}p(x|w_1)dx $$ > 通常 $\lambda_{11}$ 或 $\lambda_{22}$ 都會是 0 > 如果寫成矩陣如下 $$\begin{bmatrix} \lambda_{11} & \lambda_{12} \\ \lambda_{21} & \lambda_{22} \\ \end{bmatrix}= \begin{bmatrix} 0 & \lambda_{12} \\ \lambda_{21} & 0 \\ \end{bmatrix}$$ > 要將個別 Risk $r_i$ 寫成 Average Risk 可以用以下寫法 $$r = \sum_{k=1}{r_kP(w_k)}$$ > 最後我們用像之前 Error Probility 的方法化簡 Average Risk $$r = P(w_1) - \int_{R_1}(\lambda_{12}P(w_1|x)-\lambda_{21}P(w_2|x))p(x) dx$$ ::: > 所以依照化簡可以得出在以下情況,Average Risk 會最小 > > $\lambda_{12}P(w_1|x)=\lambda_{21}P(w_2|x)$ > <br> ## 4. Discriminant Function - :question: : 有時我們資料較難看出關係,該如何解決 - :A: : 可以利用一個 Function 將原資料 Mapping 到更高 or 低維度, 又或是數值的縮放,來看出資料的特性 > **Discriminant Function** > 就是可以將資料 or 機率的分佈 Mapping 到其他維度或數值 > 但要注意,Discriminant Function 只能是單調函數 > 也就是較小的值 Mapping 後還是小於其他值,並不會改變與其他數值的關係 > > **1. 資料 Mapping :** > 常見的像是取 log 來增加資料靈敏度 > 或是 SVM 在遇到非線性問題時會 Mapping 到更高維度方面找出 Decision Surface > > **2. 輸出或機率分布 Mapping :** > 像是 Loss Function ,例如分類問題中,常使用 CrossEntrophy 將輸出 Mapping 到 (類) 機率的數值的分佈 :::info 可以將 Discriminant Function 以 $g(x)$ 表示 $$g_i(x) \equiv f ( P ( \omega_i | x ) )$$ ex : Discriminant Function 為 log $g_i(x) \equiv log( P ( \omega_i | x ) )$ ::: <br> ## 5. Normal Distribution 的貝氏分類 這邊是用來計算 $p(x|w_i)$ 為常態分佈時的特性 :::warning #### 常態分佈的 pdf (Probability Density Function 機率密度函數) $$p(x|w_i)=\frac{1}{ 2\pi^{\frac{1}{2}} |\sum|^{\frac{1}{2}} } exp(-\frac{1}{2}(x-\mu_i)^{T} \sum_i^{-1}(x-\mu_i))$$ ::: :::warning #### Co-Variance Matrix 共變異數矩陣 共變異數代表兩機率分佈間的相關性 - 變異數 : 大小代表資料集中程度,越小越集中, 矩陣中 [ $\sigma^2_{11},\sigma^2_{22}$ ] 就代表各自的變異數 - 共變異數 : 正代表兩分佈有正相關、反之負相關,0 為無相關性 矩陣中 [ $\sigma^2_{12},\sigma^2_{21}$ ] 就代表各自的變異數 $$\sum = \begin{bmatrix} \sigma^2_{11} & \sigma^2_{12} \\ \sigma^2_{21} & \sigma^2_{22} \\ \end{bmatrix}$$ $${\sum}^{-1} = \begin{bmatrix} \frac{1}{\sigma^2_{11}} & \frac{1}{\sigma^2_{12}} \\ \frac{1}{\sigma^2_{21}} & \frac{1}{\sigma^2_{22}} \\ \end{bmatrix}$$ ::: :::info 距離....還在理解中 ::: <br> ## 6. MLE ( Maximum Likelihood Estimation ) 最大概似法估計 前面有提到要使用 $P(x|w_i)$ 來預測出 $P(w_i|x)$ 但 $P(x|w_i)$ 其實是無法直接取得的,因為我們無法考慮所有 $x$ 和類別 $w$ 的情況 所以必須用一些統計的 "估計法" 來得到此值,這邊就選用 MLE 來介紹 :::warning ### MLE > 假設我們今天要估計出一個**母群的統計值** $\theta$ ( ex : $\mu$、$\sigma$..... ) > 要估計出 $\theta$ 我們只要最大化以下函數即可 $$p( X ; \theta ) = p( x_1,x_2,x_3...x_n;\theta )$$ > $X$ 為真實的資料 sample,這段機率函數的意義是在某 $\theta$ 情況下出現 $X$ 的機率 > 也就是說,<font color=red>只要最大化此機率函數,所得到的 $\theta$ 就會最接近實際的母群參數 $\theta$</font> > 這邊進行化簡,並稱呼此式為 <font color=red>**Likelihood**</font> $$L(\theta)=p( x_1,x_2,x_3...x_n;\theta )=p(x_1;\theta)p(x_2;\theta)...p(x_n;\theta)=\prod_{i=1}^n p(x_i;\theta)$$ > 通常還會將 $L(\theta)$ 取 log 方便計算指數 $$ln( L(\theta) )=ln( \prod_{i=1}^n p(x_i;\theta) )$$ > 要如何計算 Likelihood 的最大值呢 ? > 講到計算最大值,一定優先想到微分求極值 > 而如果函數分布複雜,那可能還會需要求二次微分,判斷是最大值 or 最小值 $$\frac{\partial L(\theta)}{\partial \theta}=0$$ > **求出來的 $\theta$ 通常會是一個與 $x$ 的函數**,我們也稱此 $\theta$ 為 <font color=red>$\theta_{ML}$</font> :::
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.