其實機器學習的任務是從屬性x**標記y,即求概率p(y|x);
對於判別式模型來說求得p(y|x),對未見示例x,根據p(y|x)可以求得標記y,即可以直接判別出來,如上圖的左邊所示,實際是就是直接得到了判別邊界,所以傳統的、耳熟能詳的機器學習演算法如線性回歸模型、支援向量機svm等都是判別式模型,這些模型的特點都是輸入屬性x可以直接得到y(對於二分類任務來說,實際得到乙個score,當score大於threshold時則為正類,否則為反類)~(根本原因個人認為是對於某示例x_1,對正例和反例的標記的條件概率之和等於1,即p(y_1|x_1)+p(y_2|x_1)=1)
而生成式模型求得p(y,x),對於未見示例x,你要求出x與不同標記之間的聯合概率分布,然後大的獲勝,如上圖右邊所示,並沒有什麼邊界存在,對於未見示例(紅三角),求兩個聯合概率分布(有兩個類),比較一下,取那個大的。機器學習中樸素貝葉斯模型、隱馬爾可夫模型hmm等都是生成式模型,熟悉***** bayes的都知道,對於輸入x,需要求出好幾個聯合概率,然後較大的那個就是**結果~(根本原因個人認為是對於某示例x_1,對正例和反例的標記的聯合概率不等於1,即p(y_1,x_1)+p(y_2,x_1)<1,要遍歷所有的x和y的聯合概率求和,即sum(p(x,y))=1,具體可參見樓上woodyhui提到的維基百科generative model裡的例子)
博文機器學習之判別式模型和生成式模型 - nolonely - 舉了乙個例子:
判別式模型舉例:要確定乙個羊是山羊還是綿羊,用判別模型的方法是從歷史資料中學習到模型,然後通過提取這只羊的特徵來**出這只羊是山羊的概率,是綿羊的概率。
生成式模型舉例:利用生成模型是根據山羊的特徵首先學習出乙個山羊的模型,然後根據綿羊的特徵學習出乙個綿羊的模型,然後從這只羊中提取特徵,放到山羊模型中看概率是多少,在放到綿羊模型中看概率是多少,哪個大就是哪個。
細細品味上面的例子,判別式模型是根據乙隻羊的特徵可以直接給出這只羊的概率(比如logistic regression,這概率大於0.5時則為正例,否則為反例),而生成式模型是要都試一試,最大的概率的那個就是最後結果~
補充20180524:
在機器學習中任務是從屬性x**標記y,判別模型求的是p(y|x),即後驗概率;而生成模型最後求的是p(x,y),即聯合概率。從本質上來說:
判別模型之所以稱為「判別」模型,是因為其根據x「判別」y;
而生成模型之所以稱為「生成」模型,是因為其**的根據是聯合概率p(x,y),而聯合概率可以理解為「生成」(x,y)樣本的概率分布(或稱為 依據);具體來說,機器學習已知x,從y的候選集合中選出乙個來,可能的樣本有(x,y_1), (x,y_2), (x,y_3),……,(x,y_n),實際資料是如何「生成」的依賴於p(x,y),那麼最後的**結果選哪乙個y呢?那就選「生成」概率最大的那個吧~
生成模型和判別模型區別
在討論生成模型和判別模型之前,我們先回顧一下機器學習要解決的兩類問題。假設x是輸入的特徵 feature y是 的結果 分類是label,回歸是value 1.分類 p y x 即根據輸入特徵求目標分類。2.回歸 y f x 即根據輸入特徵直接求值。由於分類問題和回歸可以相互轉化,下文我們以分類為例...
生成模型和判別模型的區別
有監督機器學習方法可以分為生成方法和判別方法 常見的生成方法有混合高斯模型 樸素貝葉斯法和 馬爾科夫模型等,常見的判別方法有svm lr等 生成方法學習出的是生成模型,判別方法學習出的是判別模型。生成模型主要是求解聯合概率密度,比如我們有資料集 c,x 其中 c,x 表示其中乙個樣本,c為類別,x為...
生成模型和判別模型的區別
按照求解的方法,可以將分類演算法分為判別模型和生成模型。給定特定的向量x與標籤值y,生成模型對聯合概率p x,y 建模,判別模型對條件概率p y x 進行建模。上述含義可以這麼理解 生成模型對條件概率p x y 建模,判別模型對條件概率p y x 建模。前者可以用來根據標籤值y生成的隨機的樣本資料x...