數據嗨客 | 第2期:線性回歸

引子

這一期我們討論機器學習中的回歸問題。

認真看過上一期的同學應該記得,回歸屬於監督學習中的一類方法。

簡單來講,回歸就是通過數據學習數量關係,然後利用這個數量關係去做預測。

作為人類,我們能輕而易舉地學習並理解現實中的簡單數量關係。隔壁老王的SUV每100公里耗油10升,出門往返200公里,老王就知道該給車加至少20升油。

why?

因為連他8歲的兒子都知道這就是個簡單的正比例關係。

然而數量關係並不都是那麼簡單。

老王昨天一人食點了個9寸海鮮披薩,剛剛飽。這次他心血來潮帶老婆一塊去吃,掐指一算點了個18寸的。最後的結局當然是撐得生無可戀,雙雙扶牆回家。

看,通過邏輯思考總結數量關係,在不同情境下我們需要調用不同的思考邏輯,因而容易出錯。

為此,我們很難給計算機講道理,告訴它為什麼SUV的耗油量和里程數之間是正比關係,披薩的尺寸和食用人數之間卻又不是了。

更何況還有像「南半球的一隻蝴蝶扇了扇翅膀,北半球的納斯達克就崩盤」這種超出人類邏輯理解範圍的複雜關係。靠人類總結規律再教給計算機,就更不可能了。

所以,回歸的策略是跳過邏輯分析,讓計算機直接從數據中學習數量關係。這正是機器學習(統計學習)的核心思想。

因此回歸除了作為一種機器學習演算法,也是一個超出描述層面統計分析,關注現象解釋和預測的統計模型。

回歸這個名詞看上去頗為不接地氣。其實說來有趣,追根溯源,回歸(Regression)這一概念最早是由英國生物統計學家高爾頓和他的學生皮爾遜在研究父母親和子女的身高遺傳特性時提出的。

他們的研究揭示了關於身高的一個有趣的遺傳特性:若父母個子高,其子代身高高於平均值的概率很大,但一般不會比父母更高。

即身高到一定程度後會往平均身高方向發生「回歸」。這種效應被稱為「趨中回歸(Regression Toward the Mean)」。

如今,所討論的「回歸」和這種趨中效應已經沒有任何瓜葛了,它只是指源於高爾頓工作的那樣一整套建立變數間數量關係模型的方法和程序。然而回歸這個朗朗上口的名字卻歪打正著一直流傳至今。

在一個回歸模型中,我們需要關注或預測的變數叫做因變數(響應變數或結果變數),我們選取的用來解釋因變數變化的變數叫做自變數(解釋變數或預測變數)。

做回歸分析,確定變數後我們還需要根據具體問題選擇一個合適的回歸模型,通俗地說就是把自變數映到因變數的函數的大體樣子。

常用的回歸模型有線性回歸,多項式回歸,邏輯回歸等等。

考慮到線性關係是自然界最普遍,最本質的數量關係,所以毋庸置疑線性回歸是最簡單實用的一類回歸模型,也是其他回歸模型研究的基礎。

下面我們討論線性回歸(前方乾貨,高能預警)。

線性回歸的數學基礎

最簡單的一元線性回歸說起。現有自變數X,因變數Y,對具體問題,我們拿到的觀測值是(x1,y1),…,(xn,yn)。回歸方程為

Y=kX+b+ε

其中k,b是待學習的參數,ε為殘差。

我們的目標是找到一條直線y=kx+b使得所有樣本點儘可能落在它的附近。

之所以這樣做,是因為我們相信X和Y之間就應該差不多滿足這個簡單的關係。

若確實有這麼個一次函數讓所有數據都滿足條件,那這就成了SUV耗油問題,隔壁老王的兒子也能一眼看出來。

我們面臨的真正挑戰在於,來自現實的數據是有誤差的,一般來說無法保證所有的樣本點都精確滿足回歸方程。

所以我們只能退而求其次,給計算機安排的學習策略就是在某種意義上讓誤差εε取到極小,以期望得到最可能接近真實規律的模型。

在高中我們就熟知這個問題的解法——求解使得εi(i=1,2,…,n)的平方和極小化的k,b:

(k?,b?)=argmink,b∑i=(yi?kxi?b)2

以上關於(k,b)的無約束二次優化問題,其解析解是容易得到的。這就是大名鼎鼎的最小二乘法(Ordinary Least Square, OLS)。

直觀上,這個演算法給出了描述X,YXY兩個變數線性關係的最優近似。

多元線性回歸本質也是一樣,只是自變數和參數的個數變為多個。我們的目標仍是在最小二乘的意義下找到讓殘差平方和取極小的參數。模型為

Y=Xβ+εY

其中Y=(y1,…,yn)T為因變數,有n個觀測值;

X=(xij)n×k為n×k矩陣,其k個列分別表示k個自變數的k×n個觀測值;β=(β1,…,βk)為自變數的回歸係數,ε為殘差。

若考慮截距項,可在X中加入一列常數,出於簡單起見暫不考慮。 這個問題在OLS意義下的解為

β?=(XTX)?1XTY

上式稱作法方程(Normal Equation)。

不難看出,回歸模型訓練的關鍵在於確定一個殘差極小化準則,數學上講,就是指定一個損失函數(Loss Function)。

一般來講我們所說的線性回歸都是在最小二乘(OLS)準則下得到的模型。

其他的選擇也是有的,如最小一乘模型(殘差絕對值之和極小),以及在損失函數中加入對模型複雜度的懲罰項後得到的各種帶正則化的回歸模型(嶺回歸,LASSO等)。

這些高端方法有興趣的讀者可以自行了解。

線性回歸的數學本質

深入理解線性回歸的鑰匙在於最小二乘條件。

1829年高斯提出最小二乘法,但早在1760年波斯科維奇就提出了最小一乘法。

最小一乘在數學上更簡單也更符合人們的直覺,但為什麼人們卻對最小二乘法如此青睞呢?我看來有以下兩個原因:

  1. 從線性代數的角度來看,多元回歸是一個典型的最佳逼近問題。即在XX的列向量所張成的kk維線性空間Vk中找一個元素Yk=Xβ,使得Yk∈Vk與Y∈Vn在某種度量的意義下距離最短。於是自然地,我們選取歐氏距離作為度量,這就是OLS中殘差平方和的由來。 具體來講,選取歐氏距離的好處在於使得線性空間Vn及其子空間Vk成為內積空間,從而具備了良好的幾何性質。在歐氏度量的意義下,Y在Vk中的最佳逼近元Yk正是Y在Vk上的正交投影,於是我們有ε=(Y?Yk)⊥Vk

    即ε⊥X,XTε=0.這樣一來,在回歸方程的兩邊同時左乘(XTX)?1XT立刻解得β?=(XTX)?1XTY.這就是法方程的由來。

  2. 從數理統計的角度來看,多元回歸是一個典型的參數估計問題。OLS的好處在於,在一定條件條件下由它得到的估計量擁有諸多統計學上的優良性質。嚴格來說,需對模型提以下條件:

①誤差ε是一個期望0的隨機向量;

②對於解釋變數的所有觀測值,ε的各個分量有相同的方差,且彼此不相關;

③解釋變數與隨機誤差項彼此相互獨立;

④解釋變數之間不存在精確的線性關係;

⑤隨機誤差項服從正態分布。

在條件1,2,3,4成立的前提下,我們有著名的高斯-馬爾科夫定理:最小二乘估計是最小方差線性無偏估計。在5個條件全部成立的前提下,還不難證明最小二乘估計是極大似然估計。

理論上第5個條件並不是硬性的,但實際問題中我們一般希望它能夠滿足。

畢竟,若只要模型足夠好以至於選取的自變數確實與因變數線性相關,那麼殘差與預測值就應該沒有任何系統關聯,於是當數據量足夠大時它理應服從正態分布。

此外,殘差滿足正態分布的假設還有助於我們在做回歸結果診斷時對模型參數進行顯著性檢驗。

回歸模型的有效性

事實上,無論數據是否滿足模型基本假設,理論上都是可以通過最小二乘法得到模型參數的。

只不過此時模型的有效性就要打問號了(最小二乘君:怪我咯)。

為此我們來看一個著名例子(Anscombe』s quartet,圖片來自維基百科):

對這四組觀測數據,我們用線性回歸將得到完全相同的模型,但它們的解釋力顯然大相徑庭。

最小二乘君是冤枉的,問題出在數據上!

上一期我們提到過,模型是火箭,數據是燃料。

燃料兌了水火箭還能升空,最小二乘君已經儘力了有木有。

對燃料進行提純,濃縮,也就是數據預處理的工作,應當落在數據科學家的頭上。

具體來講,在接受一個回歸模型之前需要對數據進行的檢驗包括但不僅限於下面幾條:

1. 殘差是否近似滿足均值為0的正態分布; 2. 因變數值是否獨立; 3. 是否存在離群點,高槓桿值點或強影響點。

當預處理後的數據基本滿足模型假設,我們可以接受回歸模型的結果之後,還需要設計一些指標去衡量它的效果。

常見的如衡量模型擬合優度的 R2R2值,衡量擬合方程的顯著性的F值以及衡量各個變數擬合係數的顯著性的t值等。這些也都是數據科學家要做的具體工作,細節就不贅述了。

所有檢驗通過之後,我們總算得到了一個看上去靠譜的回歸模型。

但還不夠!

計算機只是客觀告訴我們一堆數據中極有可能隱藏著某個數量關係;而回答為什麼有這種關係,並不是它的長項。

所以,解釋模型的艱巨任務自然也落到了數據科學家頭上。

數據科學家需要結合業務實際和常識,告訴人們為什麼這些回歸係數理應是模型推算出來的那個樣子。

可不要小看模型解釋哦,很多時候一個模型是否能在實際中發揮作用,很大程度上在於能不能賦予它一個合乎邏輯的解釋。

想想轉基因食品吧,所有的數據都一邊倒地證明轉基因無害沒有任何卵用,只要一天科學家給不出鐵板釘釘的理論支持,就總有人視其為洪水猛獸,唯恐避之不及。

這也無可厚非,畢竟生命不比程序,可以隨時推倒重來。

統計學大牛George Box曾經曰過:All models are wrong, but some are useful.最後用這句話來總結線性回歸再恰當不過。

自然界錯綜複雜,但大部分現象都能用最最簡潔優美的線性關係來描述。

線性回歸作為一個粗糙暴力的模型,誤差在所難免,但對我們理解這個世界已然實現了從0到1的跨越。

這一期的科普就到這裡。下一期我們講樸素貝葉斯。

本文由 普林科技(微信公眾號:普林科技) 投稿 數據分析網 發表,並經數據分析網編輯。版權歸作者所有,轉載此文請與作者聯繫。

原文鏈接:數據嗨客 | 第2期:線性回歸-數據分析網

weixin.qq.com/r/mnUtNVn (二維碼自動識別)

推薦閱讀:

線性回歸模型 為什麼要求隨機誤差的均值為0?
為什麼變數間的相關關係會使變數係數不能通過t檢驗?
Logistic 回歸模型的參數估計為什麼不能採用最小二乘法?

TAG:大数据 | 数据分析 | 回归模型 |