1. 程式人生 > >Logistic Regression邏輯回歸

Logistic Regression邏輯回歸

一個 div 新的 損失函數 OS gre gist log 轉化

邏輯回歸

針對二分類問題,若X是特征集合,Y是類別標簽(0,1),假設Y的取值服從伯努利分布,即
\(P(Y=0|X)=1-p\)
\(P(Y=1|X)=p\)
再假設p是可以由已知的特征集合X預測的,令(式2)
\[p=\frac{1}{1+e^{-{\theta}^{T} x}}=h_{\theta}(x)\]
因此,只要求得\(\theta\),對一個新的樣本點,就可以算出\(p\),然後取\(p\)取值較大的那個類別,就得到了分類的結果。那麽這個\(\theta\)怎麽求呢?

將式2代入式1,有
\(P(Y=0|X)=1-h_{\theta}(x)\)
\(P(Y=1|X)=h_{\theta}(x)\)



\(P(y|x;\theta)=[h_{\theta}(x)]^{y}[1-h_{\theta}(x)]^{1-y}\)
問題就轉化為了伯努利分布的參數估計,這裏可以應用極大似然法估計,得到似然函數為
\[L(\theta)=\prod_{i=1}^{N}{[h_{\theta}(x)]^{y_i}[1-h_{\theta}(x)]^{1-y_i}}\]
如果要使用《機器學習實戰》裏說的梯度上升法,就要求得似然函數取得極大值時\(\theta\)的取值,而梯度下降法,就是把負似然函數看成機器學習中常說的損失函數,使得負似然函數最小化。

取對數似然函數
\[ln(L(\theta))=\sum_{i=1}^{N}[{y^{(i)}ln(h_{\theta}(x^{(i)}))}+(1-y^{(i)})ln(1-h_{\theta}{(x^{(i)})})]\]


為了求得對數似然函數的極大值,有
\(\frac{\partial(ln(L(\theta))) }{\theta_j}=\sum_{i}^{N}[y^{(i)}\frac{1}{h_{\theta}{(x^{(i)})}}\frac{\partial{h_{\theta}{(x^{(i)})}}}{\theta_j}+(1-y^{(i)})\frac{1}{1-h_{\theta}{(x^{(i)})}}\frac{\partial{h_{\theta}{x^{(i)}}}}{\partial{\theta_j}}]\)
\(=\sum_{i=1}^{N}[y^{(i)}\frac{1}{h_{\theta}{(x^{(i)})}}+(1-y^{(i)})\frac{1}{1-h_\theta{(x_i)}}]\frac{\partial{h_{\theta}{(x^{(i)})}}}{\partial{\theta_j}}\)

\(=\sum_{i=1}^{N}[y^{(i)}\frac{1}{h_{\theta}{(x^{(i)})}}+(1-y^{(i)})\frac{1}{1-h_\theta{x^{(i)}}}]h_\theta{(x^{(i)})}(1-h_\theta{(x_i)})x_j^{(i)}\)
\(=\sum_{i=1}^{N}[y^{(i)}-h_\theta{(x^{(i)})}]x_j^{(i)}\)
由此便得到了\(\theta\)的更新公式
\[\theta_j:=\theta_j+\alpha\sum_{i=1}^{N}[y^{(i)}-h_\theta{(x^{(i)})}]x_j^{(i)}\]

Logistic Regression邏輯回歸