邏輯迴歸算法,雖說名字有迴歸,實則是一個分類模型,而且是二分類。
Logistic本質上是一個基於條件概率的判別模型(Discriminative Model)
g(z) = 11+e−z
通過這個圖像sigma函數,通常以0.5爲分界,大於0.5爲正樣本,反之爲負樣本,是一個二分類的方法。
那麼將這個函數擴展到多維空間,就是說不只是二分類,而是多分類問題,那麼原始的函數
g(z) = 11+e−z (二分類)
就要變成
hθ(x)=g(θTx)=11+e−θTx (多分類)
現在需要解決的一個問題是求θ ,如何得到合適的參數向量θ
根據sigma函數的特性,我們可以這樣假設一下:
P(y=1|x;θ)=hθ(x) (根據當前的參數,提供樣本x,該樣本屬於y=1的概率)
P(y=0|x;θ)=1−hθ(x)
上兩式爲已知樣本X和參數θ 的前提下,樣本X屬於正樣本(y = 1) 負樣本 (y = 0)的條件概率
然後將以上兩個公式進行合併
P(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
這個公式也就是對二分類綜合的公式,能分別求出屬於正樣本、負樣本的概率
此時會用到最大似然估計的知識。最大似然估計的目的是:利用已知的樣本結果,反推最有可能(最大概率)導致這樣結果的參數值。
既然概率出來了,那麼最大似然估計也該使用了。假定樣本與樣本之間相互獨立,那麼整個樣本集生成的概率即爲所有樣本生成概率的乘積:
L(θ)=p(y⃗ |X;θ)=∏mi=1(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
爲了簡化問題,我們對整個表達式求對數(將指數問題對數化是處理數學問題常見的方法):
l(θ)=log L(θ)=∑mi=1log h(x(i))+(1−y(i))log(1−h(x(i)))
滿足似然函數(θ) 的最大的θ 值即是我們需要求解的模型。
梯度上升算法
Xi+1=Xi+α∗∂f(Xi)Xi
其中,α 爲步長。
回到Logistic Regression問題,我們同樣對函數求偏導。
∂∂θjl(θ)=(y1g(θTx)−(1−y)11−g(θTx))∂∂θjg(θTx)=(y1g(θTx)−(1−y)11−g(θTx))g(θTx)(1−g(θTx))∂∂θjθTx=(y(1−g(θTx))−(1−y)g(θTx))xj=(y−hθ(x))xj
對以上公式的詳細過程:
∂∂θjl(θ)=∂l(θ)∂g(θTx)∗∂g(θTx)∂θTx∗∂θTx∂θj
其中:
l(θ)=y∗log g(θTx)+(1−y)log(1−g(θTx))
∂l(θ)∂g(θTx)=y∗1g(θTx)+(1−y)∗11−g(θTx)∗(−1)
令z=θTx
g(z)′=ddz11+e−z=1(1+e−z)2(e−z)=1(1+e−z)∗(1−1(1+e−z))=g(z)(1−g(z))
可得:
∂g(θTx)∂θTx=g(θTx)∗(1−g(θTx))
接下來就剩下第三部分:
∂θTx∂θj=∂(θ1x1+θ2x2+...+θmxm)∂θj=xj
(這個公式應該很容易理解,簡單的偏導公式,只有第j項進行計算)
再有就是:
hθ(x)=g(θTx)=11+e−θTx
綜合第三部分即得到:
∂∂θjl(θ)=(y−hθ(x))xj
因此,梯度迭代公式爲:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
本篇文章參考了http://www.cnblogs.com/bonelee/p/7253508.html,並對齊進行了整理,思路更清晰直觀。