邏輯回歸(Logistic Regression)是一種統計機器學習方法,簡單易用,卻涉及很多知識點。正所謂麻雀雖小,五臟俱全。大多數教程都是從定義和原理出發,來講解邏輯回歸,容易顯得晦澀難懂。本文將結合實例和圖示,幫助讀者在7分鐘內搞懂邏輯回歸算法。
功能
邏輯回歸一般用于二分類任務,并能給出兩個類的相應概率。
常見的應用包括垃圾郵件判別、銀行判斷是否給用戶貸款等等。當然,二分類問題可以擴展到多分類問題。
做二分類任務,最簡單的判別函數是階躍函數,如下圖紅線所示。當 時判斷為正類(1),反之為負類(0)。但階躍函數不連續,過于“死板”,不便于后續求導優化。因此用logistic function(上圖黑線)代替,因為呈現“S”形,也稱為 sigmoid function,對應公式:
定義域為整個實數集合,值域為0~1,相當于概率值。
為何不叫邏輯分類?
首先,“邏輯”指的是“logistic”(音譯),“回歸”來源于線性回歸的 ,使用線性回歸去擬合逼近一個決策邊界,使得按照這個邊界進行數據分類后的總損失最小。以概率0.5作為界線,將數據分為正例和反例。當 ,對應正例(趨近于概率1);當 ,對應負例(趨近于概率0)。這是在使用回歸的思想去解決分類問題,所以稱為邏輯回歸。等價于在線性回歸外包裹了一層sigmoid函數,將離散值映射為0和1之間的概率,以0.5為界。核心問題
理解邏輯回歸的一個核心問題是,如何求解決策邊界 ?求最優決策邊界,等價于求 的值。當樣本的真實標簽 是1和0時,我們分別定義一個損失函數:以 為例,當模型的預測值 趨向1時,損失函數取值也應該越來越??;反之,當 趨向0時,損失函數值越來越大,可以通過函數 體現。模型的訓練目的是盡可能減小損失,所以會讓輸出值朝著1的方向學習。是否可以將兩類的cost函數合并到一塊,方便計算總損失呢?
對于下圖的樣本點,綠線是決策邊界。綠線上部 ,距離綠線越遠 越大,預測值 越接近1。求解邊界
明確了損失函數后,我們來計算模型參數的最優值。首先需要計算cost對參數 的導數,再借助梯度下降等算法微調參數值,不斷逼近最優解。假設我們有10個樣本點,每個樣本包含3個特征,則 維度為[10, 3], 維度為[3, 1], 和 的維度為[10, 1]。cost的維度也是[10, 1]。cost和H相關,H和Z相關,Z和WX相關,存在關系映射:cost~H~Z~X。根據鏈式求導法則,整個計算過程如下:梯度下降法
剛剛我們使用了梯度下降法迭代求解最優的 ,一共分為3步:當cost函數是凸函數時,可以保證cost降到全局最小,否則可能只走到局部最小。使用邏輯回歸,我們可以使用python、C++等語言自己實現,或借助機器學習工具包Sklearn中的接口 LogisticRegression [2]。現在,大家是不是理解了邏輯回歸的思想呢?如有疑問,歡迎交流(vx:cs-yechen)
參 考 文 獻
[1] 文小刀機器學習|邏輯回歸:https://www.bilibili.com/video/BV1As411j7zw[2] LogisticRegression: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
由于微信平臺算法改版,公號內容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為:
(1)點擊頁面最上方'AINLP',進入公眾號主頁。
(2)點擊右上角的小點點,在彈出頁面點擊“設為星標”,就可以啦。
感謝支持,比心
。
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請
點擊舉報。