【機器學習演算法】線性迴歸以及手推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是凸函式,因此可以用梯度下降等方法來求解。
四,多分類學習
現實中經常遇到多分類學習任務,有些二分類學習方法可以推廣到多分類任務中,一般的使用二分類任務就可以解決多分類問題了。使用“拆解法”:即將多分類問題拆分為若干個二分類任務求解。常見的有一對一,和一對多。