機器學習十大經典算法——邏輯迴歸

前言:現在更新第二期,做完第一期後得到了好多人的鼓勵,也讓我更有信心吧這一系列做完,在這期間還得到了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

 這期結束了,謝謝大家的支持,要是覺得對你有點幫助,可以點波關注或者點個贊哦,關注會回關的哦。祝大家身體健康,希望疫情早點結束,去見自己想見的人。

發佈了78 篇原創文章 · 獲贊 27 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章