邏輯斯迴歸(Logistic Regression)是很基本的分類問題會使用的模型,不過大家真的知道邏輯斯迴歸模型中的係數,到底代表什麼意思嗎?我們來仔細看看吧。
一、線性迴歸
我們先從最基本的線性迴歸開始看,假設資料的特徵跟標籤都只有 1 個,那線性迴歸的數學方程式如下:
其中,w 為迴歸係數,又稱權重(weight)或斜率、b 為截距,又稱偏誤(bias)。透過迴歸係數,我們可以知道「x 每增加 1 個單位, y 就會增加 w 單位」。也因為線性迴歸很好解讀,因此對於需要高度模型可解釋性的應用,線性迴歸會比較常出現。
二、邏輯斯迴歸
接下來,我們看看邏輯斯迴歸,假設資料的特徵跟標籤也都只有 1 個,那邏輯斯迴歸的數學方程式如下:
從上述的數學方程式中,如果 x 增加 1 個單位,y 就會增加...不知道...有分子有分母有指數實在太複雜了...沒關係,接下來我們就會推導出邏輯斯迴歸中,係數的意義。
三、邏輯斯迴歸中的勝算(odds)
首先,我們知道在二元分類的問題中,邏輯斯迴歸模型的輸出,即為「Y=1的機率」(為什麼是這樣,可以參考旗標出版的「資料科學的統計實務 — 探索資料本質、扎實解讀數據,才是機器學習成功建模的第一步」)。那如果我想知道「Y=0的機率」是多少,該怎麼辦?很簡單,因為在二元分類問題,「Y=0的機率」加上「Y=1的機率」會等於 1 ,所以我們就可以推導出「Y=0的機率」:
接下來,我們就可以進一步計算「Y=1的機率」比「Y=0的機率」多幾倍:
這個「Y=1的機率」比「Y=0的機率」的倍率,我們稱為勝算(odds)。
四、邏輯斯迴歸中的係數意義
有了勝算之後,接下來,我們來看看「如果特徵增加 1 個單位,勝算的改變是多少」:
最後,我們將 2 個勝算相除:
現在,我們發現「勝算相除」會等於「對係數取指數」。雖然指數函數會影響我們判斷係數,但其實讀者可以想 w 越大,取了指數之後就會更大,這樣就夠了。
可以發現,邏輯斯迴歸的係數,會影響的是勝算的比例。如果係數越大,當表每增加 1 單位的 x,勝算增加的倍數就會很大。當勝算增加倍數很大的時候,代表「Y=1的機率」比「Y=0的機率」大很多。
五、範例
假設我們有一個已經訓練好的邏輯斯迴歸模型,其模型參數如下:
w = log(3)b = -0.5349091764577985
根據剛剛推導的數學式,我們可以得知隨便給一個x值,只要我們將x值增加1,勝算就會變成三倍。讓我們來驗證看看:
x = 1.4876812601674558P(Y = 1) = 0.75P(Y = 0) = 0.25Odds = 3
現在,我們把x+1代入模型:
x = 1.4876812601674558 + 1P(Y = 1) = 0.9P(Y = 0) = 0.1Odds = 9
我們將此模型的決策邊界畫出來:
這樣讀者了解邏輯斯迴歸的係數意義了吧!
關於作者
Chia-Hao Li received the M.S. degree in computer science from Durham University, United Kingdom. He engages in computer algorithm, machine learning, and hardware/software codesign. He was former senior engineer in Mediatek, Taiwan. His currently research topic is the application of machine learning techniques for fault detection in the high-performance computing systems.