在前面所介紹的線性迴歸, 嶺迴歸和Lasso迴歸這三種迴歸模型中, 其輸出變量均爲連續型, 好比常見的線性迴歸模型爲:html
其寫成矩陣形式爲:算法
如今這裏的輸出爲連續型變量, 可是實際中會有"輸出爲離散型變量"這樣的需求, 好比給定特徵預測是否離職(1表示離職, 0表示不離職). 顯然這時不能直接使用線性迴歸模型, 而邏輯迴歸就派上用場了.函數
引用百度百科定義優化
邏輯(logistic)迴歸, 又稱logistic迴歸分析,是一種廣義的線性迴歸分析模型,經常使用於數據挖掘,疾病自動診斷,經濟預測等領域。3d
也就是說邏輯迴歸是從線性迴歸模型推廣而來的, 咱們從假設函數開始提及.htm
1. 假設函數blog
現假設因變量取值0和1, 在自變量X的條件下因變量y=1的機率爲p, 記做p=P(y=1|X), 那麼y=0的機率就爲1-p, 把因變量取1和取0的機率比值p/(1-p)稱爲優點比, 對優點比取天然對數, 則能夠獲得Sigmoid函數:get
令Sigmoid(p)=z, 則有:數據挖掘
而Logistic迴歸模型則是創建在Sigmoid函數和自變量的線性迴歸模型之上(這可能就是爲何帶有"迴歸"二字的緣由吧), 那麼Logistic迴歸模型能夠表示爲:變量
上式也經常被稱爲邏輯迴歸模型的假設函數, 其函數圖像爲:
經過圖像能夠看出的取值範圍爲, h(x)的取值範圍爲[0, 1], 對於二分類問題來講, h(x)>=0.5則y=1, h(x)<0.5則y=0, 並且經過圖像得知: 當時, h(x)>=0.5, 所以時y=1, 不然y=0.
模型的假設函數知道了, 接下來看看損失函數.
2. 損失函數
既然邏輯迴歸是創建在線性迴歸模型之上, 那麼咱們先來回顧線性迴歸的損失函數:
若是將咱們邏輯迴歸的假設函數代入上式損失函數, 繪製出來的圖像則是非凸函數, 其很容易產生局部最優解, 而非全局最優解, 爲了找到使得全局最優解, 咱們須要構造一個凸函數.
因爲對數函數可以簡化計算過程, 所以這裏也是經過對數函數來構建, 先來回歸下對數函數的圖像(原圖來自百度百科):
經過上圖能夠發現綠線部分與咱們要構造的凸函數較接近. 當a=e時, 綠線部分能夠分別表示爲: -loge(x)和-loge(1-x). 現將x替換爲h(x)並同時加入輸出變量y (取值爲1或0), 則有:
當上式中的y=1時, 其結果爲-logeh(x); 當y=0時, 其結果-loge[1-h(x)].
最後, 將上式代入咱們的損失函數中, 則有:
固然, 也能夠用統計學中的極大似然法構造出上式損失函數. 損失函數有了, 下一步則是求解損失函數最小的算法了.
3. 算法
經常使用的求解算法有梯度降低法, 座標軸降低法, 擬牛頓法. 下面只介紹梯度降低法(其餘方法還未涉及)
你也許會有疑問, 既然是線性迴歸模型推廣而來, 那麼爲何沒有最小二乘法呢? 最小二乘法是用來求解最小偏差平方和的算法, 而偏差的平方和正是咱們上面提到的線性迴歸的損失函數, 經過其構造出來的邏輯迴歸的損失函數是非凸的不容易找到全局最優解, 故不選用最小二乘法, 而經過極大似然法則能夠構造出凸函數, 進而可使用梯度降低法進行求解.
對於梯度降低法的理解在這節, 這裏直接給出其表示:
具體的求解過程:
所以, 咱們的梯度降低法能夠寫成(其中, x0=1):
上式也被稱爲批量梯度降低法, 另外兩種: 隨機梯度降低法和小批量梯度降低法分別表示爲:
1. 優勢
1) 模型簡單, 訓練速度快, 且對於輸出變量有很好的機率解釋
2) 能夠適用連續型和離散型自變量.
3) 能夠根據實際需求設定具體的閥值
2. 缺點
1) 只能處理二分類問題.
2) 適用較大樣本量, 這是因爲極大似然估計在較小樣本量中表現較差.
3) 因爲其是基於線性迴歸模型之上, 所以其一樣會出現多重共線性問題.
4) 很難處理數據不均衡問題
3. 優化
1) 能夠在二分類上進行推廣, 將其推廣到多分類迴歸模型
2) 對於多重共線性問題, 也能夠經過刪除自變量, 進行數據變換, 正則化, 逐步迴歸, 主成分分析等方法改善, 對於正則化邏輯迴歸一樣有兩種: L1和L2, 其分別表示爲:
L1正則化
L2正則化