學習筆記之邏輯迴歸

引言
今天我們學習邏輯迴歸。我們都知道線性迴歸模型是y=wTX+by=w^TX+b,我們對他進行變形,得到lny=wTX+blny=w^TX+b,這就是“對數線性迴歸”(logit linear regression),就是我們所說的邏輯迴歸。再變形y=ewTX+by=e^{w^TX+b},一般地,把y=f(wTX+b)y=f(w^TX+b)形式,叫做廣義線性模型。

一、數學原理

因爲X是連續的,所以wTX+bw^TX+b的結果也是連續的,爲了能做二分類問題,我們借鑑單位階躍函數。如下圖:
在這裏插入圖片描述
我們引入sigmoid 函數,邏輯迴歸形式是y=11+ez,z=wTX+by=\frac{1}{1+e^{-z}},z=w^TX+b。我們令y≥閾值,結果爲正例,反之,爲負例(閾值一般爲1/2)。
注:邏輯迴歸借鑑了概率思維,但不是真正的概率,所以和貝葉斯算法有區別。

損失函數:J(θ)=1mi=1my(i)log(σ(θTXb(i)))+(1y(i))(1log(σ(θTXb(i))))J(θ)=-\frac{1}{m} \sum_{i=1}^{m}y^{(i)}log(σ(θ^T・X_b^{(i)}))+(1-y^{(i)})(1-log(σ(θ^T・X_b^{(i)}))),我們在尋找最優的邏輯迴歸模型時,就是找到一組參數θ,使得損失函數J(θ)達到最小值。

二、代碼實現

1、手工代碼實現
實現過程:
①、定義sigmoid方法,使用sigmoid方法生成邏輯迴歸模型;
②、定義損失函數,並使用梯度下降法得到參數;
③、將參數代入到邏輯迴歸模型中,得到概率;
④、將概率轉化爲分類。

在這裏插入代碼片

2、sklearn實現
上一篇文章,我們學習了正則化,可以提高模型的泛化能力。sklearn的邏輯迴歸算法是直接加入正則化的,參數是penalty,默認是L2。另外新增一個超參數C。即損失函數形式是J=CJ(θ)+αL1J=CJ(θ)+αL2J=CJ(θ)+αL1 或 J=CJ(θ)+αL2

參考文獻:《機器學習 周志華著》第3章線性模型 3.2節、3.3節
參考文章:
https://mp.weixin.qq.com/s/xfteESh2bs1PTuO2q39tbQ
https://mp.weixin.qq.com/s/nZoDjhqYcS4w2uGDtD1HFQ
https://mp.weixin.qq.com/s/ex7PXW9ihr9fLOjlo3ks4w
https://mp.weixin.qq.com/s/97CA-3KlOofJGaw9ukVq1A
https://mp.weixin.qq.com/s/BUDdj4najgR0QAHhtu8X9A

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