幾個常用機器學習算法 - 邏輯迴歸

作者:xg123321123

出處:http://blog.csdn.net/xg123321123/article/details/53011358

聲明:版權所有,轉載請聯繫作者並註明出處

1 迴歸

在數學上來說,迴歸是給定一個點集,然後用一條曲線去擬合。
如果這條曲線是一條直線,那就被稱爲線性迴歸;如果是一條二次曲線,就被稱爲二次迴歸。
迴歸還有很多的變種,如locally weighted迴歸,logistic迴歸等等。

一個簡單的例子:如果想評估一個房屋的價值,那麼需要考慮很多因素,比如面積、房間數量、地段、朝向等等(這些影響房屋價值的因素被稱爲特徵),此處,爲了簡單,我們假設只考慮一個因素的影響,面積。

假設以往房屋銷售的數據如下:

面積(m^2) 銷售價錢(萬元)

123 250

150 320

87 160

102 220

… …

爲了直觀,可以畫一個圖,x軸是房屋的面積。y軸是房屋的售價,如下:
這裏寫圖片描述

如果有個新戶型,在以往的銷售記錄中是沒有的,那麼就需要進行重新評估了。
這裏寫圖片描述

我們先用一條曲線去儘量擬合以往的數據,然後再根據新的戶型數據,找到曲線上對應的價格。
當用直線去擬合時,大概是這樣:
這裏寫圖片描述

圖中綠色的點,就是我們用來預測的點。
上例中特徵是兩維的,結果是一維的。
迴歸能夠解決特徵多維,結果是一維多離散值或一維連續值的問題。

2 線性迴歸

線性迴歸假設特徵和結果滿足線性關係。
線性關係的表達能力很強,每個特徵對結果的影響強弱可以由前面的參數體現,而且每個特徵變量可以先映射到一個函數,然後再參與線性計算。這樣就可以表達特徵與結果之間的非線性關係。

我們用X1X2 ..Xn 描述特徵的分量,比如x1 =房間的面積,x2 =房間的朝向等等.
接着我們以這些特徵來構建一個線性的估計函數:

h(x)=hθ(x)=θ0+θ1x1+...θnxn

θ 稱爲參數,用來調整每個特徵的影響力,比如到底是房屋的面積更重要還是房屋的地段更重要。
我們令X0 = 1,然後用向量的方式來表示上面的等式:

hθ(x)=θT(X)

同時,也需要一個損失函數來評估選取的參數θ 是否足夠好:

J(θ)=12i=1m(hθ(x(i))y(i))2

最後就是採取一些優化方法來取得θ ,使損失函數取值最小。

3 邏輯迴歸

一般來說,迴歸不用在分類問題上,因爲迴歸是連續型模型,且受噪聲影響比較大。
如果硬要用來分類,可以使用logistic迴歸。

這裏有一篇博客幫助理清邏輯迴歸的思路。

3.1 邏輯分佈

連續隨機變量X 服從邏輯分佈,是指X 具有下列分佈函數和密度函數,概率密度函數是分佈函數求導得來。

F(x)=P(Xx)=11+e(xμ)/s
f(x)=F'(x)=e(xμ)/sγ(1+e(xμ)/s)2

這裏μ是位置參數,而s 是形狀參數。
邏輯分佈在不同的μs 的情況下,其概率密度函數f(x;μ,s) 的圖形如下。
這裏寫圖片描述

邏輯斯蒂分佈在不同的μs 的情況下,其概率分佈函數F(x;μ,s) 的圖形如下。

這裏寫圖片描述

可以看到,邏輯分佈和高斯分佈的密度函數差不多。
特別注意邏輯分佈的概率分佈函數自中心附近增長速度較快,而在兩端的增長速度相對較慢。
形狀參數s的數值越小,則概率分佈函數在中心附近增長越快。

μ=0 ,s=1 時,邏輯分佈的概率分佈函數就是我們常說的sigmoid函數:

σ(a)=11+ea

導數爲:

dσda=σ(1σ)

3.2 邏輯迴歸

邏輯迴歸用來解決分類問題。
根據一些已知的訓練集訓練好模型,再對新的數據進行預測屬於哪個類。

這裏寫圖片描述

上圖有一些屬於兩個類的數據,邏輯迴歸的目標是找到一個有足夠好區分度的決策邊界,將兩類很好的分開。

假設已經存在這樣一個邊界,針對於圖中線性可分的情況,這條邊界是
輸入特徵向量的線性組合,假設輸入的特徵向量爲xRn (圖中輸入向量爲二維),Y 取值爲0,1。那麼決策邊界可以表示爲w1x1+w2x2+b=0 .

假如存在一個例子使得hw(x)=w1x1+w2x2+b>0 ,那麼可以判斷它類別爲1,這個過程通過決策函數的符號來判斷屬於哪一類,實際上是感知機。
而邏輯迴歸需要再進一步,它要找到分類概率P(Y=1) 與輸入向量x 的直接關係,然後通過比較概率值來判斷類別。

邏輯迴歸本質上其實是線性迴歸,但是在特徵到結果的映射中加入了一層函數映射,即先把特徵進行線性求和,然後使用函數g(z) 作爲假設函數來預測,將連續值映射到0和1上。

g(z) 是當μ=0,s=1時的邏輯分佈的概率分佈函數:sigmoid函數。

邏輯迴歸的假設函數如下,假設線性迴歸函數是θTX ,而g(z)=11+ez ,那麼可得

hθ(x)=g(θTX)=11+eθTX

邏輯迴歸用來預測結果屬於0或者1的二值分類問題。
這裏假設二值滿足伯努利分佈,也就是

P(y=1|x;θ)=hθ(x)
P(y=0|x;θ)=1hθ(x)

然後用極大似然估計求得最優參數。

3.3 多項邏輯迴歸

上面的邏輯迴歸是二項分類模型,可以將其推廣爲多項邏輯迴歸,用於多類分類。

P(Y=k|x;θ)=eθTX1+K1k=1eθTX,k=1,2...,K1

P(Y=K|x;θ)=11+K1k=1eθTX

其中,二項邏輯迴歸的參數估計法也能用在多項邏輯迴歸中。


本博客參考自
《對線性迴歸,logistic迴歸和一般迴歸的認識》
《淺析Logistic Regression 》
《Logistic Regression 模型簡介》
《邏輯斯蒂迴歸(Logistic Regression) 》
《統計學習方法 李航》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章