1. 程式人生 > >監督學習中的“生成模型”和“判別模型”

監督學習中的“生成模型”和“判別模型”

ref: http://blog.csdn.net/zouxy09/article/details/8195017  講的非常清晰了。

該內容部分來自於維基百科。

兩者都是概率統計模型,從維基上的解釋來看

  • 生成模型(Generative Model):定義了在觀測{X}和結果{Y}的聯合概率分佈 P(X, Y),通過貝葉斯得出後驗概率 P(Y|X) = P(X, Y) / P(X), 然後用後驗概率模型作為預測模型。因此我們還需要計算P(X)以得到後驗概率。常見的生成模型有:
  1. 高斯混合模型
  2. 隱馬爾科夫模型
  3. Probabilistic context free grammars
  4. 樸素貝葉斯
  5. RBM(受限波茲曼機)
  6. Averaged one-dependence estimators
  7. Latent Dirichlet allocation
  • 判別模型(Discriminative Model):同樣也叫Conditional Model,即條件概率模型。判別模型是建立在觀測資料和預測資料上的條件概率模型 P(Y|X) ,因此得出的後驗概率可以直接作為預測模型,常見的判別模型有:
  1. 邏輯迴歸
  2. SVM
  3. Boosting(meta-programming)
  4. 條件隨機場
  5. 線性迴歸
  6. 神經網路

生成模型和判別模型的主要區別在於:1)生成模型是建立在所有變數上面的聯合概率模型,而判別模型只是定義在目標變數上的條件概率模型。因此判別模型相對比生成模型有侷限性,生成模型還可以作為預測任何一個變數的模型。2)判別模型不需要建立觀測變數的概率模型,一般情況下它不能預測複雜的觀測和預測值關係。另外,判別模型本質上是有監督的,想要變成無監督會比較困難。

如果觀測資料是符合聯合概率分佈,那麼是用Maximize Likelihood求得模型引數是常見的方法。如果建立的概率模型只是所有變數的一個子集,那麼直接使用條件概率模型可能會更有效。當然具體模型選擇會由相應應用決定。

另外參考:

http://www.cnblogs.com/lifegoesonitself/p/3437747.htm