邏輯迴歸算法總結

邏輯迴歸和線性迴歸聯繫與區別

線性迴歸解決的是連續變量問題,那麼在分類任務中可以用線性迴歸嗎?例如判斷是良性腫瘤還是惡性腫瘤,判斷是垃圾郵件還是正常郵件,等等……

答案是也可以,但是效果不好,見下圖:
在這裏插入圖片描述
圖顯示了是否購買玩具和年齡之間的關係,可以用線性迴歸擬合成一條直線,將購買標註爲1,不購買標註爲0,擬合後取當0.5值爲閾值來劃分類別。
可以看到,在途中,年齡的區分點約爲19歲。
但當數據點不平衡時,很容易影響到閾值,見以下圖:
在這裏插入圖片描述
可以看到,0值樣本的年齡段往高年齡端偏移後,真實的閾值依然是19歲左右,但擬合出來的曲線的閾值往後邊偏移了。可以想想,負樣本越多,年齡大的人越多,偏移越嚴重。

邏輯斯諦分佈

介紹邏輯迴歸模型之前,首先看一個並不不常見的概率分佈,即邏輯斯諦分佈。
設X是連續隨機變量, X服從邏輯斯諦分佈是指X具有下列的分佈函數和密度函數:
在這裏插入圖片描述
曲線在中心附近增長較快,在兩端增長速度較慢。形狀參數γ的值越小,曲線在中心附近增長得越快。
在這裏插入圖片描述

邏輯迴歸原理

理想的替代函數應當預測分類爲0或1的概率,當爲1的概率大於0.5時,判斷爲1,當爲1的概率小於0.5時,判斷爲0。因概率的值域爲 [0,1] ,這樣的設定比線性迴歸合理很多。
常用的替代函數爲Sigmoid函數,即:
h(z)=11+ez h(z) = \frac{1}{1+e^{-z}}
其中,z=θTxz = \theta^T x
我們可以看到,當z大於0時,函數大於0.5;當函數等於0時,函數等於0.5;函數小於0時,函數小於0.5。如果用函數表示目標分到某一類的概率,我們可以採用以下“單位階躍函數”來判斷數據的類別:
h(z)={0z<00.5z=01z>0h(z) = \left\{ \begin{aligned} 0,& & z<0 \\ 0.5, & & z=0 \\ 1, & & z>0 \end{aligned} \right.

邏輯迴歸損失函數

P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x) P(y=1|x;\theta) = h_\theta (x) \\ P(y=0|x;\theta) = 1-h_\theta (x)
可以寫作一般公式,
P(yx;θ)=h(x)y(1h(x))(1y)P(y|x;\theta)= h(x)^y (1-h(x))^{(1-y)}
極大似然函數爲,L(θ)=i=1mhθ(x(i))y(i)(1hθ(x(i))(1y(i)) L(\theta) = \prod^{m}_{i=1}h_\theta (x^{(i)})^{y^{(i)}} (1-h_\theta (x^{(i)})^{(1-y^{(i)})}
對數極大似然函數爲,l(θ)=logL(θ)=i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))l(\theta) = log L(\theta) = \sum^{m}_{i=1} y^{(i)}log h_\theta (x^{(i)}) + (1-y^{(i)})log (1-h_\theta (x^{(i)}))
損失函數爲,
J(θ)=1ml(θ)=1mi=1my(i)hθ(x(i))+(1y(i))(1hθ(x(i))) J(\theta) = -\frac{1}{m}l(\theta) = -\frac{1}{m}\sum^{m}_{i=1} y^{(i)}h_\theta (x^{(i)}) + (1-y^{(i)})(1-h_\theta (x^{(i)})) 損失函數表示了預測值和真實值之間的差異程度,預測值和真實值越接近,則損失函數越小。
爲什麼不直接用和線性迴歸一樣的平方損失函數?
回答:如果和線性迴歸一樣的平方損失函數,則損失函數的形式爲i=1m(y(i)11+eθTx)2\sum^m_{i=1}(y^{(i)}-\frac{1}{1+e^{-\theta^T x}})^2,此爲非凸函數,求解複雜,而且很容易求得局部最優解爲非全局最優解。

梯度下降

我們用梯度下降法求解
θ:=θαΔθJ(θ)=θ+αmΔθl(θ)\theta:=\theta-\alpha\Delta_\theta J(\theta) = \theta + \frac{\alpha}{m}\Delta_\theta l(\theta)
g(z)=11+ezg(z) = \frac{1}{1+e^{-z}}
g(z)=g(z)(1g(z))g'(z) = g(z)(1-g(z))
證明:
在這裏插入圖片描述
因此:
在這裏插入圖片描述

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