###### 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>
:::