# 4.5 Parametric Classification
先回顧一下第三章的內容:
在 classification 裡面,我們有提過 given input $x$,$x$ 分類到 class $C_i$ 的 posterior probability 可以寫成下方式子:

並且我們可以去定義 discriminant function:
> 圖中有簡單說明,但如果想複習更詳細的內容,可以參考筆記「[3.4 Discriminant Functions](https://hackmd.io/@pipibear/B1pu4naNR)」。

這裡如果我們做一個假設,讓 likelihood 為 Gaussian,那我們就能簡化取 log 後的 discriminant function 的計算:

來看個例子:
如果有一間汽車公司要銷售 $K$ 種不同的車款,並且為了簡化討論,我們假設唯一影響顧客買車的因素是他的年收入,我們用 $x$ 表示。
另外,我們令 $P(C_i)$ 為買 type $i$ 的車的顧客比例。
如果買 type $i$ 的車的顧客,他們的年收入分佈,也就是 $p(x|C_i)$ 為 Gaussian,那麼:
買 type $i$ 的車的顧客年收入為 $x$ 的 distribution $\sim N(\mu_i,\sigma^2_i)$。
> 其中:
> - $\mu_i$ 為買 type $i$ 的車的顧客的平均年收入
> - $\sigma^2_i$ 為買 type $i$ 的車的顧客的年收入變異量
如果我們不知道 $P(C_i)$ 和 $p(x|C_i)$ ,我們會藉由取 sample ,來取它們的 estimates 來得到 discriminant function 的 estimate。
假設我們有一個 sample $X$:
\begin{equation}
X = \{x^t,\vec{r}^t\}_{t=1}^N
\end{equation}
其中:
- <font color = "green">$x^t$</font> 為 one dimensional,$t$ 代表 index,且 $x^t \in \mathbb{R}$
> $x^t$ 只有一維是因為現在我們的 input 只有一種,就是年收入。
- <font color = "green">$\vec{r}^t$</font> 為 $K$ dimensional 的向量,每個 dimension 的值 $\in \{0,1\}$,$t$ 一樣代表 index。
> 因為我們有 $K$ 種車款,所以每一種對應到一個維度,每一個維度不是零就是一(理想上只會有一個維度是一)詳細如下方式子:
\begin{equation}
r_i^t =
\begin{cases}
1 \qquad \text{if} \quad x^t \ \in C_i\\
0 \qquad \text{if} \quad x^t \ \in C_k, \ k \ne i
\end{cases}
\end{equation}
> 舉個例子解釋意思:
>
> 在我們取了 $N$ 筆資料後(這 $N$ 筆資料為 $N$ 個顧客的年收入),第 $t$ 筆資料 $x^t$ 假設為一百萬,因為我們一開始預設年收入為唯一衡量買什麼車的標準,所以根據這個值,假設會對應到買 type $10$ 的車($1 \le 10 \le K$)
>
> 那麼對應的 label $r^t$ 這個向量的第 $10$ 個 dimension 會是 $1$,其餘都是 $0$,也就是說 $r^t = [0,...,0,1,0,...,0]^T$。
對每個 class $C_i$,我們都可以去計算 mean, variance, prior 的 estimate:

> 看例子應該就能懂這些式子代表的意義!
有了 $m_i, \ s_i^2, \ \hat{p}(C_i)$ 以後,如果我們代回前面 class $i$ 的 discriminant function(假設 $p(x|C_i)$ Gaussian),再進一步假設一些條件對每個 class 都相同,就會得到簡化的 $g_i(x)$:

除此之外,如果有兩個相鄰的 classes,那這兩個 class mean 的中點就是 threshold of decision,如下圖的例子:

> $C_1$ 的 mean $m_1=-2$,$C_2$ 的 mean $m_2=2$,我們發現他們的中點 $0$ 為 threshold。
>> 見右方分別代入兩個 class 的 discriminant function,會得到相同的值,因此我們無法透過選擇值較大的 $g_i(x)$ 來判斷 $x=0$ 要分到哪個 class。
>>
> 除此之外,可以注意到圖的 (a) 代表 likelihood $p(x|C_i)$,也就是我們假設 Gaussian 的部分。圖 (b) 則是當 input 為一維、prior 相同,variance 也相同時,兩個 class 的 posterior 交會在一個點。交會的這個點就是 threshold。
>> 為什麼交會的點是 threshold 是因為在這個點 $g_1(x) = g_2(x)$ 。
再來看一個當 variance 不同的例子:

> 圖(a):兩個 classes 的 likelihood 雖然都是 normal,但是 varinace 不同(從 $C_1$ 比較集中,$C_2$ 比較扁、涵蓋更多的值看出)
>
> 圖(b):這樣的情況下,算出來的 posterior 就不像 variance 相同時只交會在一個點,產生了兩個 threshold。
>
> 圖(c):
> - 左側藍色螢光筆的線那個區段我們發現,如果 $x$ 的值落在這段(大概 $-7.$ 到 $-10$)分到 $C_1$ 的 risk $>$ 分到 $C_2$ 的 risk,且 reject 的 risk $\lambda = 0.2$ 也大於分到 $C_2$ 的 risk,所以如果 $x$ 落在這段,那我們就會分到 $C_2$。
> - 中間藍色螢光筆的線那個區段則是不管 $C_1$ 還是 $C_2$ 的 risk 都大於 reject 的 risk,所以如果 $x$ 落在這部分我們就會選擇 reject。
>> 關於 risk、reject 等概念如果忘記了可以回顧筆記「[3.3 Losses and Risks](https://hackmd.io/@pipibear/H1Mx7f4NC)」。
到這裡,我們看過了 variance 相同和不同的例子,但不管是哪種,上面的例子都是建立在 prior 相同的情況下。
如果今天我們的 prior 並不相同,那麼會造成的影響是 ++threshold 會往機率比較低的 class 的 mean 靠近++。
另外,我們在上面計算 $\hat{p}(C_i)$ 用的是 MLE(Maximum likelihood estimator)
> 即因為我們取 $\hat{p}(C_i) = \frac{\sum_t r_i^t}{N}$。
> Recall 我們稱 MLE 是因為我們要找讓 likelihood 最大的那個點來當作 estimate,而在我們的例子裡,likelihood 假定為 normal distributed,既然如此,值最大的地方就會落在 mean,也就是我們的這個式子。
>> 詳細說明可參考前面的筆記「[4.2 Maximum Likelihood Estimation](https://hackmd.io/@pipibear/rk9DvfgSC)」中的 4.2.2 Multinomial Density 小節。
但是如果我們有一些關於 parameters 的 prior information,舉例來說像是我們知道各個 classes 的 means 大概會有什麼樣的分佈,那我們就可以透過 $\mu_i$ 的 prior 來計算 Bayesian estimate of $p(x|C_i)$。
> 這裡課本沒有實際舉例多講,我想只要知道除了 MLE 外,在不同的條件下可能有不同的選擇即可。
最後,Note:
> [!Caution]
> 如果 $x$ 是 ++continuous++ 的,那我們就不能馬上假設 likelihood $p(x|C_i)$ 是 Gaussian 的,因為如果實際上 likelihood 並非 Gaussian,那我們就會得到錯誤的 threshold points。
>
> $\rightarrow$ 有可以測試 normality 的 tests,所以在我們假定 Gaussian 之前應該要先檢查是否真的 normal。
舉例來說,像我們上面的例子是 one dimensional data,最簡單的檢查 normality 的方式就是直接畫出長條圖,然後看看圖是否為 bell-shaped(也就是去檢查是否 unimodal, symmetric around the center)。
---
我們在這篇筆記中所介紹的方法是 likelihood-based approach
> 我們用 data 去分別計算 densities、用 Bayes' rule 計算 posterior densities,來得到 discriminant。
在後面的章節裡,我們會再介紹 discriminant-based approach,這種方式就會省略去估計 densities,直接估計 discriminants。