有監督機器學習方法可以分為生成方法和判別方法(常見的生成方法有混合高斯模型、樸素貝葉斯法和**馬爾科夫模型等,常見的判別方法有svm、lr等),生成方法學習出的是生成模型,判別方法學習出的是判別模型。
生成模型主要是求解聯合概率密度,比如我們有資料集:(c,x),其中(c,x)表示其中乙個樣本,c為類別,x為特徵。那麼對於生成模型來說我們需要求解p(x,c)的聯合概率密度,根據貝葉斯概率,p(x,c) = p(x|c)*p(c),所以我們的任務變成了求解p(x|c)的類別條件概率,和p(c)的類別先驗概率。
生成模型的求解思路是:聯合分布——->求解類別先驗概率和類別條件概率
還是上面的例子,比如有了(c,x),其中(c,x)表示乙個樣本資料,c為類別,x為特徵,那麼判別模型輸出的就是p(c|x)這個條件概率模型,即輸入特徵x,求輸出類別是c的概率(c關於x的條件概率)。
實際上,這個過程包含了我們「看過」訓練資料得到的後驗知識,根據這個後驗知識和測試集的特徵就可以判斷出測試集的類別。p(c|x) = p(c|x , c,x),我們認為這個條件概率由引數theta決定,即p(c|x, theta)。
但是theta怎樣求得呢?theta是模型「看過」訓練集後得到的,即theta在訓練集上的後驗分布p(theta | c,x)。
所以,綜上整個流程為:p(c|x) = p(c|x, c,x) = p(c,theta|x,c,x)關於theta積分 = p(c|x , theta)*p(theta|c,x)關於theta積分。那麼現在的重點就是求p(theta | c,x),即theta關於訓練集的後驗分布。
這個後驗分布對應的似然函式為:p(c | x,theta) = l(theta) = 乘積p(c | x , theta)。
又因為貝葉斯概率: p(theta | c,x)*p(c | x) = p(c | x , theta)*p(theta)。
又:p(c | x) = p(c,theta | x)對theta積分 = p(c | x , theta)* p(theta)對theta積分。
綜上:
條件分布——>模型引數後驗概率最大——->(似然函式\cdot 引數先驗)最大——->最大似然
生成模型:
優點:
缺點:
判別模型:
優點:
缺點:
生成模型和判別模型區別
在討論生成模型和判別模型之前,我們先回顧一下機器學習要解決的兩類問題。假設x是輸入的特徵 feature y是 的結果 分類是label,回歸是value 1.分類 p y x 即根據輸入特徵求目標分類。2.回歸 y f x 即根據輸入特徵直接求值。由於分類問題和回歸可以相互轉化,下文我們以分類為例...
生成模型和判別模型的區別
按照求解的方法,可以將分類演算法分為判別模型和生成模型。給定特定的向量x與標籤值y,生成模型對聯合概率p x,y 建模,判別模型對條件概率p y x 進行建模。上述含義可以這麼理解 生成模型對條件概率p x y 建模,判別模型對條件概率p y x 建模。前者可以用來根據標籤值y生成的隨機的樣本資料x...
生成模型和判別模型的區別
其實機器學習的任務是從屬性x 標記y,即求概率p y x 對於判別式模型來說求得p y x 對未見示例x,根據p y x 可以求得標記y,即可以直接判別出來,如上圖的左邊所示,實際是就是直接得到了判別邊界,所以傳統的 耳熟能詳的機器學習演算法如線性回歸模型 支援向量機svm等都是判別式模型,這些模型...