深入淺出機器學習之生成模型,高斯判別
這一講是一塊單獨的內容,和上一部分的迴歸不太一樣,這塊側重用概率的方式來進行分類。
首先說一下判別學習和生成學習之間的區別,判別學習就是直接學習P(y| x),通過一系列的運算得出來結果。例如,根據腫瘤的大小判斷是良性還是惡性,輸入腫瘤大小,就能映射出來結果。生成學習是建立兩個模型,惡性的建一個,良性的建一個。分別帶入這兩個當中,得出來誰的概率更大一些,就是誰。應用的數學公式呢就這個
公式是概率論中的貝葉斯公式,不講推導。也就是通過一種間接的方式來求。一般情況下P(x)為固定值,因此分子是主要的討論物件。
高斯判別:
高斯判別其實是生成學習的一個例子。其中,我們討論的是N維隨機變數的分佈。二維的高斯分佈大家應該知道,在這裡維數增加後,影象就變成了三維的了。
在這裡不糾結引數,只是看一下形狀即可。公式列一下,不過不用關心。其中μ決定中心位置,Σ決定投影橢圓的朝向和大小。
我們的方法是:對兩個(這裡先討論Y取值為2種)分別建立上述的模型,但是模型的引數不太一樣。大家看一下最後的效果圖。
在圖中可以看出來兩個模型,它們的圓心不一樣,但是形狀是一樣的,因此,兩個模型的μ不一樣,Σ一樣。Y取值只有兩個,那麼服從伯努利分佈。這樣我們就得到了三個分佈。
到這以後,我們應該做什麼呢?首要任務是讓這些點與我們的模型擬合,也就是說,把這些點放到我們的兩個模型中。
在這要用極大似然估計了,因為極大似然估計代表著要讓所有的點在我們的模型裡最佳擬合。把點都帶入到各自的模型裡相乘吧。
然後要求這個公式最大化。步驟沒有,直接出結果了:
用腫瘤的例子來說,第一個是代表了所有的例子中惡性腫瘤的比例。第二個變數代表了良性腫瘤的平均大小,第三個代表惡性腫瘤的平均大小。最後一個樣本特徵方差均值。
引數都有了,模型建立起來了。以後再來新的資料,就用兩個模型判別,看看誰的概率大一些。
高斯判別和Logistc的關係:高斯判別比較特殊,logistic更加一般化。因為高斯判別僅僅對於這麼一種的分佈,logistic對於泊松分佈等也有效。因此,如果明確知道是多元高斯分佈,那麼就直接用高斯判別。否則就用Logistic。