1. 程式人生 > >【機器學習演算法】線性迴歸以及手推logistic迴歸

【機器學習演算法】線性迴歸以及手推logistic迴歸

一,基本形式:

在樣本集D中有n個樣本,即。其中每個樣本x有d個屬性描述, x = (x1;x2;...;xd),其中xi表示的是第i個屬性上的取值,線性模型試圖學得一個通過屬性的線性組合來進行預測的函式,即:


其中w,b是要訓練的引數, w = (w1;w2;...;wd),w,b學得之後,模型就可以確定。這邊是線性模型的一般形式。

二,線性迴歸

對於給定的資料集 D,線性迴歸試圖學得一個線性模型以儘可能的預測實值輸出標記。

現在假定資料集D中的資料屬性只有一個,那麼此時要求的引數只有w和b兩個,即有: f(xi) = wxi + b 使得f(xi) = yi

我們使用“最小二乘法”來使求解上式中的w和b。

最小二乘法是基於均方誤差最小化來進行模型求解的方法,最小二乘法試圖找到一條直線,使所有的樣本到直線上的歐式距離之和最小。均方誤差為E(w,b):

有:

求解w和b使E(w,b)最小化的過程,稱為線性迴歸模型的最小二乘“引數估計”。然後對E(w,b) 分別求導,得到:

然後另上面兩式為0,可得到w和b最優的閉式解:


       

當然大部分情況下是x不止一個屬性,甚至其屬性的數目多於樣本量。此時會解出多個最優解都能使得均方誤差最小,那麼選擇哪一個解作為輸出將由學習演算法的歸納偏好決定,常見的做法是引入正則化。

也可模型預測值逼近y的衍生物,比如示例所對應的輸出標記是在指數尺度上的變化,那麼可以將輸出標記的對數作為線性模型逼近的目標:

lny = w*x + b

這就是“對數線性迴歸”。


這樣得到的模型是“廣義線性模型”,其中函式g(.)稱為“聯絡函式”。顯然。對數線性迴歸是廣義線性迴歸在 g(.) = ln(.) 的特例。

三,對數機率迴歸(邏輯迴歸)

對於分類的問題,從上一節中,我們可以知道,只需找到一個單調可微函式將分類任務的真實標記y與線性迴歸模型的預測值聯絡起來就可以。現在僅考慮二分類的問題,對於二分類問題來說理想的函式是“單位階躍函式”,但是由於其不連續,因此一般採用sigmoid函式來作為替代,兩個函式的圖如下所示:


那麼對數機率函式正是這樣一個替代函式:

   將z值代入到公式中得到:            

                                   


如何確定式中的w和b,將y視作類後驗概率估計p(y=1|x),則可寫為:


式3.27是凸函式,因此可以用梯度下降等方法來求解。

四,多分類學習

現實中經常遇到多分類學習任務,有些二分類學習方法可以推廣到多分類任務中,一般的使用二分類任務就可以解決多分類問題了。使用“拆解法”:即將多分類問題拆分為若干個二分類任務求解。常見的有一對一,和一對多。