1. 程式人生 > >機器學習之_邏輯迴歸

機器學習之_邏輯迴歸

邏輯迴歸又稱logistic迴歸,邏輯斯諦迴歸,是一種廣義的線性迴歸分析模型。

1. Sigmod函式

 Sigmoid函式也是神經網路中常用的函式,用於把x從負無窮到正無窮壓縮到y從0到1之間。畫出來就是一條S型曲線,如下圖中的藍色曲線:

 它以0點為中心對稱,公式如下:

 當x值接近負無窮時,分母很大,S(x)接近0,當x接近正無窮時,分母接近1,S(x)接近1,當x為0時,S(x)為1/2在正中間。S曲線的彎曲程度由e決定。 它的導數是上圖中的橙色曲線:

 導數的意義是變化率,當x很大時或很小時,S’(x)接近0,而在x接近0時,S’(x)值最大,即S曲線在0點處變化劇烈,它勾勒出了y在0與1之間模稜兩可的區域。

2. 邏輯斯諦分佈

 必須滿足邏輯斯諦分佈,才能用邏輯迴歸。那麼什麼是邏輯斯諦分佈?
邏輯斯諦分佈即增長分佈,增長分佈的分佈函式是“增長函式”,公式如下:

 可以看到,它把(x-μ)/γ代入Sigmoid函式。其中μ是位置引數,也可解釋為數學期望(大多數情況下是均值),散佈中心,而γ是形狀引數,它描述了散佈程度(集中還是分散)。邏輯斯諦分佈記為L(μ,γ),當時μ=0,γ=1,稱為標準的邏輯斯諦分佈,就是Sigmoid函式。

 我們形象地看一下μ和γ的功能:假設μ=3, γ=2,繪出的曲線如下:

 相比,它的中心點在μ=3(橫座標3,縱座標1/2),且曲線也比較平緩γ=2,γ值越小,中心附近變化越劇烈。 增長函式是sigmoid的擴充套件,它將以0為中心以1為單位的S曲線,擴充套件為以μ為中心,以γ為單位的S曲線。 換言之,只要分佈符合S曲線,就能用邏輯迴歸。

3. 分佈函式和密度函式

 從概率的角度上講,藍色曲線它是分佈函式,分佈函式也叫累計分佈函式(積分),它的函式值是概率P(X<=x),x越靠右,概率X發生的概率越大。

 常用的說明例子是:植物群體中發病的普遍率,橫軸為時間,縱軸為發病率,一開始發病的植物少,增長緩慢,在中段出現爆發式增長,最終增長變慢,飽合達到100%。可以說分佈函式中的Y是一個隨時間積累得到的量(單調上升),即到時刻x為止,發病植物佔所有植物的比例。而它的導數橙色線,即x時刻新發病的植物佔整體的比例,即密度函式。

4. 邏輯迴歸

 邏輯迴歸又稱logistic迴歸,邏輯斯諦迴歸,是一種廣義的線性迴歸分析模型。線性模型是通過一組值X0…Xn預測Y的具體值(從特徵預測結果),而邏輯迴歸是將用X0…Xn預測Y屬於哪個分類(A/B分類),基本的邏輯是先預測具體值,然後再用Sigmoid函式將具體值對映到0-1之間。如果這個概率大於0.5,則認為是A類。而決定0.5的因素是各個特徵的權重。

(1) 疑問一:直線和S曲線有什麼關係?

 y1=wx+b想像它的影象是x為橫軸,y1為縱軸的一條直線,縱軸範圍很大。而Sigmoid是0-1間的曲線,先把wx+b計算出y1,再將y1代入sigmoid函式,計算y2: y1=w*x+b (公式1)

 y2=sigmoid(y1) (公式2) 這是個函式巢狀,所以結果並不直觀;它相當於把x軸對映到y軸(藍色),再把y軸按S曲線從正無窮到負無窮壓縮到了0-1之間(橙色)。

(2) 疑問二:Sigmoid函式和概率有什麼關係?

 把直線方程代入Sigmoid函式(公式1代入公式2),公式如下:

 如果看成二分類問題,當sigmoid函式值大於0.5時認為是A類,否則認為是B類。通過直線方程,我們用特徵x預測目標值y1,而通過sigmoid的變換,計算出該值屬於哪個分類的概率y2。容易看出:上式的兩個概率之和為1(兩種可能性加起來是100%)。邏輯斯諦迴歸比較兩個條件概率值的大小,將例項x分到概率值較大的一類中。

 把x和w推廣到高維多特徵的情況下,w=(w1,w2,w3…b), x=(x1,x2,x3,…1)則公式變換如下:

 可以說,邏輯迴歸基本上就是線性迴歸的擴充套件。

5 模型引數的估計

 具體應用時,我們知道例項有多個特徵x(x1,x2,x3…),求各個特徵對應的權重w(w1,w2,w3…b),使得各個例項都能正確分類,求取w一般使用梯度上升法或牛頓法,這裡講講梯度上升法。

6. 應用

 需要注意的是w*x是線性函式,每個x與y之間,需要服從單調上升或者調下降的關係,如果不服從這種關係,就不能用邏輯迴歸。比如目標分類y是強壯與否,而特徵x是年齡,我們知道並不是年齡越大越強壯(老年人),二者間並不存在同增同減的關係,年齡因素就沒法直接使用邏輯迴歸,除非先對年齡做變換,例如abs(年齡-35)。

7. 參考