機器學習 高斯判別分析

2022-06-23 16:27:10 字數 1895 閱讀 2604

在前面的博文中,我們介紹了線性判別分析用於分類,在這篇博文中,我們介紹高斯判別分析。高斯判別分析也是一種用於分類的方法,在樣本資料服從多元高斯分佈以及類別標籤\(y\)服從伯努利分佈的假設條件下,然後再由貝葉斯公式求出一個新樣本分別屬於兩類別的概率。

對於給定的資料集\(d=\\),其中\(y_=\\)。根據假設\(y_i\)服從伯努利分佈,那麼有如下公式成立

\[p(y)=\phi^y(1-\phi)^

\]其中\(\phi\)表示$y_i=$0的概率值。另外兩類樣本資料集均服從高斯分佈,且方差一樣。那麼可以將兩個類別表示成如下

\[x|y=1 \sim n(u_1, \sigma)\\

x|y=0 \sim n(u_2,\sigma)

\]那麼綜合表達這兩類樣本成

\[p(x|y)=[n(u_1,\sigma)]^y[n(u_2, \sigma)]^

\]接下來的目標就是在目標準則下,求得高斯分佈的引數,包括\(\theta=(\phi,u_1,u_2,\sigma)\)。首先定義似然函式

\[l(\theta)= \log\pi_^p(x_i,y_i)

\]然後利用貝葉斯公式

\[p(x,y)=p(x|y)p(y)

\]進而可以將似然函式表示成

\[l(\theta)=\log \pi_^[p(x_i|y_i)p(y_i)]\\

\sum_^(\log p(x_i|y_i)+\log p(y_i))

\]那麼引數\(\theta\)可以通過最大化\(l(\theta)\)得到

\[\hat=\arg \max_ l(\theta)\\

=\arg \max_\theta \sum_^[\log n(u_1,\sigma)^ + \log n(u_2,\sigma)^+log(\phi^(1-\phi)^)]

\]可以看到\(\phi\)只與後兩項有關,讓\(l(\theta)\)對\(\phi\)求偏導,可以得到

\[\frac}=\sum_^y_ \frac+(1-y_i)(-1)\frac=0

\]很容易得到

\[\phi = \frac\sum_^y_i

\]\(u_1\)的求解過程和\(u_2\)類似,因此只介紹求解\(u_1\)的過程。從\(l(\theta)\)的表示式可以知道\(u_1,u_2\)只與前兩項有關係,首先讓\(l(\theta)\)對\(u_1\)求偏導,得到

\[\frac}}=\sum_^y_i\log\frac\lvert\sigma\lvert^}}e^(x_i-u_1)^t\sigma^(x_i-u_1)}

\]由於中間的分數項是一個常數,那麼\(u_1\)的求解可以轉成如下優化問題

\[\hat_1=\arg \max_ \sum_^ y_i[-\frac(x_u-u_1)^t\sigma^(x_i-u_1)]

\]重新定義目標函式\(l(u_1)\)如下

\[l(u_1)=-\frac\sum_^y_i(x_i-u_1)^t\sigma^(x_i-u_1)\\

-\frac\sum_^y_i[x_i^\sigma^x_i-2x_^\sigma^u_1+u_1^\sigma_u_1]

\]上式對\(u_1\)求偏導,得到

\[\frac}}=\sum_^y_i[\sigma^x_i-\sigma^u_1]=0\\

\rightarrow \hat_1=\frac^x_iy_i}^y_i}=\frac^}

\]同理可得

\[\hat_2=\frac^x_iy_i}

\]

至此已經完成了高斯判別分析中的所有的引數估計。