###### 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up