前言:現在更新第二期,做完第一期後得到了好多人的鼓勵,也讓我更有信心吧這一系列做完,在這期間還得到了csdn排名前三的大佬點贊,真的非常高興,這期的邏輯迴歸是在線性迴歸的基礎上進行的,線性迴歸是基礎,我希望大家先吧線性迴歸搞懂,再開始邏輯迴歸,這樣更容易點,第二期邏輯迴歸,開講~~~
1:什麼是邏輯迴歸
1.1 官話:
假設數據服從伯努力分佈,通過極大似然函數的方式運用梯度下降來求解參數,來達到將數據二分類的目的。
1.2 通俗:
邏輯迴歸不是一個迴歸問題,而是一個分類算法,是在線性迴歸的基礎上進行拓展,假如我們解決一個分類問題,用之前的線性迴歸怎麼解決?我們是不是之需要找到一個閾值進行劃分就可以,以某個定值爲分割點進行劃分,所以我們做出如下所圖
但是我們這條線取的是平均值,要是有個值非常的離羣,是不是會導致這條直線劃分效果很差,所以我們需要一個函數可以解決離羣值以及如何定義閾值,所以我們使用sigmoid函數來解決這個問題,爲什麼要用這個函數,我推薦大家自己找下資料,這裏不再衍生。
2:sigmoid函數
這個函數將任意的輸入映射到[0,1]區間,我們在線性迴歸中可以得到一個預測值,再將該值映射到sigmoid函數中,這樣就完成了由值到概率的轉換,也就是分類任務
2.1伯努力分佈
邏輯迴歸的第一個基本假設是假設數據服從伯努利分佈。伯努利分佈有一個簡單的例子是拋硬幣,拋中爲正面的概率是pp,拋中爲負面的概率是1−p1−p.在邏輯迴歸這個模型裏面是假設 hθ(x)hθ(x) 爲樣本爲正的概率,1−hθ(x)1−hθ(x)爲樣本爲負的概率。那麼整個模型可以描述爲
所以邏輯迴歸的最終形式
我們要將什麼時候取0,什麼時候取1,用概率的方式表達出來
之後進行合併,總結出目標函數爲
之後進行最大似然函數計算,和線性迴歸一樣
我們現在要求的是最大值,但是乘積的最大值很難求出,所以通過取對數,將乘法轉化爲加法
之後使用梯度下降進行求偏導,由於這是個梯度上升,咱們需要的最小值所以取-1/m
最後進行參數的不斷更新就可以了
到這算是大致的邏輯迴歸,其餘的是優化過程,下面主要給大家一些代碼,用這些代碼可以快速的用sklearn庫進行模型構建,具體可以看我博客中的實戰例子,這是之前接單遇到中做的
20200210_logistic迴歸來預測違約的概率
https://blog.csdn.net/qq_39309652/article/details/104346104
這期結束了,謝謝大家的支持,要是覺得對你有點幫助,可以點波關注或者點個贊哦,關注會回關的哦。祝大家身體健康,希望疫情早點結束,去見自己想見的人。