多元回歸方程:假設有一個因變量y和一組自變量x1, x2, x3, ... , xn,其中y為連續變量,我們可以擬合一個線性方程:
y =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn
如果y為二分類變量,只能取值0或1,那么線性回歸方程就會遇到困難: 方程右側是一個連續的值,取值為負無窮到正無窮,而左側只能取值[0,1],無法對應。為了繼續使用線性回歸的思想,統計學家想到了一個變換方法,就是將方程右邊的取值變換為[0,1]。最后選中了Logistic函數:邏輯回歸,可以說是在線性回歸的基礎上加上一個sigmoid函數,將線性回歸產生的值歸一化到[0-1]區間內。sigmoid函數如下:
y = 1 / (1+e-x)
這是一個S型函數,值域為(0,1),能將任何數值映射到(0,1),且具有無限階可導等優良數學性質。
我們將線性回歸方程改寫為:
y = 1 / (1+e-z),
其中,z =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn
此時方程兩邊的取值都在0和1之間。
進一步數學變換,也就是可以寫為:
Ln(y/(1-y)) =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn
Ln(y/(1-y))稱為Logit變換。我們再將y視為y取值為1的概率p(y=1),因此,1-y就是y取值為0的概率p(y=0),所以上式改寫為:
p(y=1) = ez/(1+ez),
p(y=0) = 1/(1+ez),
其中,z =β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn.
(你看吼,你需要估計某件事發生的概率,這時候你有大量的訓練樣本,所以你想用一個多元回歸來估計這個事兒,但是你多元回歸所算出來的值特別多,而你的概率只處於0和1之間,這時候吧你就需要logistics了,)
接下來就可以使用”最大似然法”估計出各個系數β。
本文基本借鑒:http://blog.sina.com.cn/s/blog_44befaf60102vznn.html
這個出自:http://blog.csdn.net/YoYoDelphine/article/details/52888276
(你看吼,你所估計的跟真實值肯定有出入吧,這時候就需要找最優化的各個系數β吧,那你怎么找呢,就需要一個代價函數,代價函數分很多,求參有多種方法。比如最小二乘,比如最大然,比如交叉熵,這里用極大然是為了使這件事發生的概率最大化,也就是已知x,求β)
所謂參數估計就是:對未知參數θ進行估計時,在參數可能的取值范圍內選取,使“樣本獲得此觀測值x1,x2...,xn”的概率最大的參數θ^作為θ的估計,這樣選定的θ^有利於x1,x2...,xn”的出現。也就是說在已知數據集(結果)和模型(分布函數)的情況下,估計出最適合該模型的參數。
舉個例子:
假設你有一枚硬幣,隨機拋10次;現在的結果是6次正面。我們都知道,拋一枚硬幣,正面朝上和反面朝上的概率均是θ=0.5;但前提時,這是在大量的實驗(拋硬幣)情況下才有的結論。那在我們這個情況下,參數θ到底取何值時才能使得出現6次正面的肯能性最大呢?
詳情參見:http://blog.csdn.net/The_lastest/article/details/78761577
也就是n個獨立的樣本出現的似然函數為(因為每個樣本都是獨立的,所以n個樣本出現的概率就是他們各自出現的概率相乘):
那最大似然法就是求模型中使得似然函數最大的系數取值θ*。這個最大似然就是我們的代價函數(cost function)了。
(截自李航《統計學習方法》)
(你看吼,這時候帶代價函數,這里的代價函數就是這個事兒所有屬性發生的概率*不發生的概率,就需要求β,然后需要用到梯度下降法對於每次的β迭代,也就是求導,對於極大似然函數求導,導數的方向也就是最好的下降方向 ,然后我們令該導數為0,你會很失望的發現,它無法解析求解。不信你就去嘗試一下。所以沒辦法了,只能借助高大上的迭代來搞定了。這里選用了經典的梯度下降算法。
)
(θ求完導之后發現是θ=θ1+步長*(錯誤率)*本來的xi,下面就是優化了,在樣本容量非常大的時候,你要隨機選則,節省時間,然后就是逐步減小步長,這個在牛頓法中可以理解,迭代次數越高,越合適)
代碼參考:http://blog.csdn.net/zouxy09/article/details/20319673
本文僅作作者筆記,沒有任何冒犯的意思。。。