在前面幾課裏的學習算法的思路都是給定數據集以後,確定基於此數據集的最佳假設H函數,通過學習算法確定最佳假設H的各個參數,然後通過最佳假設函數H得出新的數據集的結果。在這一課裏介紹了一種新的思路,它的核心思想是直接計算各種假設的最高概率,然後擬合各個假設的最高概率參數,並利用擬合得到的假設概率,計算出新的數據集的概率,選取概率最高的假設直接得出分類類別。
整個生成學習算法的精髓在於條件概率的使用,在二元分類裏,也可以稱爲分別算法。在給定的數據集裏確定p(y) 和p(x|y),然後依據貝葉斯定理,得到
其中x|y=1)p(y=1)+p(x|y=0)p(y=0)。爲得到每種假設的最高概率,所以可知
1、高斯分別算法(Gaussian discriminant analysis,GDA)
多元正太分佈的函數這裏就不詳細展開了,以後會另開一個關於機器學習中的常用數學的博客專題。高斯分別算法面對的是連續變量x。在高斯分別分析模型
y~Bernoulli(φ )
x|y=0 ~N(μ0,Σ )
x|y=1∼ N(μ1,Σ)
所以它們的概率分佈函數是:
在概率分佈函數裏的參數φ, Σ, μ0 and μ1 ,可以通過最大似然概率計算。似然概率函數爲
最大化似然概率,可確定各參數值如下:
2、高斯分別算法和logistic迴歸算法的比較
兩者都是針對分類問題。但是如果p(x|y)滿足多元高斯分佈,則可以推導出p(y|x)滿足logistic迴歸。反之則不然。這說明高斯分別算法具有更好的模型假設性,在訓練的時候需要更少的數據。在數據集大的時候,高斯分別算法比logistic迴歸算法更有效,一般而言,我們也認爲在數據集小的時候,高斯分別算法也更有效。logsitic迴歸算法具有更好的魯棒性,在數據集明顯不符合高斯分佈的時候,logistic迴歸算法的效率比高斯分別算法的效率好。因此,實踐中用到的更多的是logistic迴歸算法。
此外,當x|y = 0 ∼ Poisson(λ0) ,x|y = 1 ∼ Poisson(λ1) (滿足指數簇)時,p (y|x)滿足logistic迴歸。