ML01: 線性迴歸中的「線性」

閱讀時間估計: 10 分鐘關鍵字:線性迴歸、線性映射、線性變換、資料科學、機器學習

Outline
(1) 前言
(2) 關鍵證據
(3) 解答:Linear Map
(4) 誤解了「線性」的書籍們:錯過速度快、成本低、表現好的線性迴歸模型
(5) 結論
(6) References

(1) 前言

我們先簡略說明 linear function 和 linear map。Calculus 中的 linear function (polynomial of degree 1) 大家都不陌生,就是 y = ax + b。Wikipedia 的 Linear map 條目中[1],提及 linear map also called a linear mapping, linear transformation or, in some contexts, linear function;而一般很少會稱 linear map 為 linear function。

不管是志在 Data Science 或 Machine Learning 的統計人、資工人或商管人,都會學到這基礎中的基礎──線性迴歸(linear regression)。不過,線性是什麼呢?根據 Wikipedia,「線性」在數學上有 2 種定義 [2],如圖一。

而這個 linear regression 中的 linear,究竟指的是 Calculus 中的 linear function,還是 Linear Algebra 和 Math Analysis 中的 linear map 呢?

圖一、 “Linear function” from Wikipedia

(2) 關鍵證據

讓我們先查找全球統計所通用的課本 Applied Linear Regression (4th ed.)[3] 中怎麼說吧!很可惜,連這本課本都沒有詳細說明這個 linear 究竟是 linear function 或是 linear map,但我們依然可以從課文中找到蛛絲馬跡:

1. 證據一

圖二、Applied Linear Regression (4th ed.), P vii.

在目錄中,第二章為 simple linear regression。

2. 證據二

圖三、Applied Linear Regression (4th ed.), P 51.

承續第二章,在第三章的開頭,此課本表示了一般所謂的 multiple regression 的全名是 multiple linear regression。注意到,Calculus 中並沒有 multiple linear function 這個名詞。

3. 證據三

圖四、Applied Linear Regression (4th ed.), P 55.

雖然看完證據二,答案已經呼之欲出,但我們還是先耐下性子看看證據三。這裡的描述,這跟 linear map 像不像?

(3) 解答:Linear Map

答案揭曉,linear regression 中的 linear 指的正是 linear map!而 linear regression 又可分為 simple linear regression 和 multiple linear regression。

知乎論壇有個討論串 <线性回归中的”线性”是什么意思呢?>[4],網友「灰度倒走」,解釋了「线性函数 ≠ 线性回归方程」,並說明「线性回归中线性的含义:變量 y对于未知的回归系数(β0,β1 …. βk) 是线性的」。

最後,來幫商管人科普一下 linear map 的正式定義,統計人、資工人可以當作複習。linear map 又稱為 linear mapping 或 linear transformation,根據 Wikipedia,其定義如圖五 [1];而這個定義,正是上述網友「灰度倒走」說的「變量 y 對於未知的迴歸系數是線性的」的來源。

圖五、“Linear map” from Wikipedia

(4) 誤解了「線性」的書籍們:錯過速度快、成本低、表現好的線性迴歸模型

部分 ML/DS 書籍 (以及不少線上文章) 有著把 linear regression 的 linear 當成 linear function 的誤解,以為 linear regression 就只是一條直線。讀者也許會覺得這無傷大雅,但這誤解會使讀者錯過帶有高次方 (degree) 和交互作用項 (interaction) 的 linear regression。另外,是嚴謹性 (rigor) 的問題,如果連 linear regression 的 linear 都不經查證而誤解,那我們怎麼能相信該作者建立的知識模塊、乃至整個知識體系的正確性?

帶有高次方 (degree) 和交互作用項 (interaction) 的 linear regression,特色是速度快、成本 (建置成本) 低、簡單(因此可解釋性高)、表現很不錯,可以在建立更複雜的模型之前先挑選合適的 feature,並且可以將此 linear regression 模型作為 baseline model 來評價其它更複雜的模型 (e.g., SVM, RF, XGBT, ANN, CNN, RNN)!畢竟根據 Occam’s razor (law of parsimony),簡單模型的預測效力、判別能力跟複雜模型差不多的話,為何要採用複雜模型呢…?

更不用說,帶有高次方 (degree) 和交互作用項 (interaction) 的 linear regression,還可以再加上正則化 (regularization),以 lasso & ridge 這兩種 penalty term (或是混合這兩者的 elastic net) 來避免 overfitting.

在此羅列筆者確定其對 linear regression 的 linear 存在誤解的書籍、以及其敘述如下:

1. 趙涓涓、強彥 (2019)。Python 機器學習。北京,中國:機械工業。
「"線性" 指一次,"回歸" 實際上就是擬合。」
2. 方巍 (2019)。Python 數據挖掘與機器學習實戰。北京,中國:機械工業。
「對於線性回歸問題,樣本點落在空間中的一條直線上或該直線的附近,因此可以使用一個線性函數表示自變量和因變量間的對應關係。然而在一些應用中,變量的關係呈現曲線形式,因此無法用線性函數表示自變量和因變量間的對應關係,而需要使用非線性函數表示。」
3. Kane, F. (2017). Hands-on Data Science and Python Machine Learning. Birmingham, UK: Packt Publishing.
"All it (linear regression) is, is fitting a straight line to a set of data points."
4. Joshi, P. (2016). Python Machine Learning Cookbook. Birmingham, UK: Packt Publishing.
"You might say that there might be a curvy line out there that fits these points better, but linear regression doesn't allow this."

扣掉上述明顯存在對 linear regression 觀念錯誤的書籍,剩下的書籍裡大多提到 linear regression 時都不會提到高次方 (degree) 項、交互作用 (interaction) 項,更不會提到 ridge regression、lasso regression、elastic net regression 。筆者懷疑他們其實也有觀念錯誤,但沒有找到證據。

那麼,筆者也要在此表揚有提及 linear regression 的高次方 (degree) 項或交互作用 (interaction) 項的 ML/DS 書籍如下:

1. Albon, C. (2018). Machine Learning with Python Cookbook: Practical Solutions from Preprocessing to Deep Learning. California, CA: O’Reilly Media.2. 黃永昌(2018)。scikit-learn 機器學習:常用算法原理及編程實戰。北京,中國:機械工業。3. VanderPlas, J. (2017). Python Data Science Handbook: Essential Tools for Working with Data. California, CA: O’Reilly Media.4. Hackeling, G. (2017). Mastering Machine Learning with scikit-learn (2nd ed.).  Birmingham, UK: Packt Publishing.

(5) 結論

  1. linear regression 中的 linear ,是 linear algebra 的 linear map (linear transformation),而不是 Calculus 的 linear function (polynomial of degree 1)。
  2. linear regression with degree over 1 and interactions + regularization + stepwise 跑出來的模型,表現會遠好過於 z = ax + by + c 的這種 linear regression。
  3. 而這個 linear regression with degree over 1 and interactions + regularization + stepwise 跑出來的模型,因為速度快、成本 (建置成本) 低、表現很不錯,很適合當作 ML/DS project 的 starting point。可以快速瀏覽資料模式、挑選出重要的 feature、解釋資料特性,為建立更複雜的模型作準備
  4. 所謂的 baseline model,不該只是 z = ax + by + c 這種 linear regression 或甚至是 y= ax + b 這種 simple linear regression,而應該要是 linear regression with degree over 1 and interactions + regularization + stepwise 跑出來的模型!因為如果這個 linear regression 模型 & 更複雜的模型 (e.g. SVM, RF, XGBT, ANN, CNN, RNN),跑出來的預測準確度、判讀準確度彼此相近,那為何不使用更快速、更低成本、更簡單(因此可解釋性高) 的 linear regression?
  5. 一句話總結這個傳統的統計學習 (Statistical learning) 模型 — linear regression with degree over 1 and interactions + regularization + stepwise 跑出來的模型 — 速度快、成本 (建置成本) 低、表現很不錯、可解釋性高 (因為相對簡單)

(6) References

[1] Wikipedia (Unidentified). Linear map. Retrieved from https://en.wikipedia.org/wiki/Linear_map

[2] Wikipedia (Unidentified). Linear function. Retrieved from https://en.wikipedia.org/wiki/Linear_function

[3] [3] Weisberg, S. (2014). Applied Linear Regression (4th ed.). New Jersey, NJ: John Wiley & Sons.

[4] 灰度倒走 (2019)。线性回归中的”线性”是什么意思呢?。取自
https://www.zhihu.com/question/271558319

--

--

ML/DS using Python & R. A Taiwanese earned MBA from NCCU and BS from NTHU with MATH major & ECON minor. Email: yc.kuo.28@gmail.com

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Yu-Cheng Kuo

Yu-Cheng Kuo

62 Followers

ML/DS using Python & R. A Taiwanese earned MBA from NCCU and BS from NTHU with MATH major & ECON minor. Email: yc.kuo.28@gmail.com