1. 程式人生 > >機器學習--線性迴歸1(一元線性迴歸、多元線性迴歸,誤差性質)

機器學習--線性迴歸1(一元線性迴歸、多元線性迴歸,誤差性質)

前面幾節都是監督學習方面的演算法,監督學習是指有目標變數或預測目標的機器學習方法,迴歸與分類的不同,就在於其目標變數是連續數值型,而分類的目標變數是標稱型資料,其實前面的Logistic迴歸就是迴歸的一種,他們的處理方法大同小異,在這裡系統的講解一下回歸的來龍去脈,理解影響迴歸的因素,知道如何處理這方面的問題,系統的梳理一下。本節將從最簡單的一元線性迴歸開始,然後是多元,逐次深入, 下面就開始介紹線性迴歸:

迴歸:

迴歸分析就是利用樣本(已知資料),產生擬合方程,從而(對未知資料)進行預測

迴歸演算法(模型):用平均值,期望,方差,標準差進行預測估計

迴歸分析中,又依據描述自變數與因變數之間因果關係的函式表示式是線性的還是非線性的,分為線性迴歸分析和非線性迴歸分析。

通過指數來進行判斷即可,線性就是每個變數的指數都是1(一次方),為直線形態,而非線性就是至少有一個變數的指數不是1(二次方或多次方),為曲線形態。

一元線性迴歸:

若X與Y之間存在著較強的相關關係,則我們有Y≈α+βX

若α與β的值已知,則給出相應的X值,我們可以根據Y≈α+βX得到相應的Y的預測值

那麼現在我們知道什麼是迴歸了,關鍵是如何找到合適的引數(係數)作為迴歸的方程使用?

下面給出更一般的一元線性迴歸的表示式:

Y= \beta X + \alpha + \varepsilon 

其中 \alpha為截距項,\beta為斜率,\varepsilon為誤差項

如何確定這幾個引數?

我們知道,確定引數一定會有一個衡量標準的,這個衡量標準一般使用誤差平方和,簡單來說就是使用平方誤差和衡量預測值h和真實值的差距,但是為什麼是平方誤差呢?大家知道他的來歷嗎?在這裡解釋一下:

如上圖,中間的線就是擬合的線,那麼我希望找到一個最佳的擬合線,如何衡量他呢?上面提到可以使用誤差平方和,那麼基於什麼誤差呢?第一個想到的就是基於資料點到迴歸線的距離之和,求其所有距離並求和,得到一個距離誤差,如上圖其中一個數據點的距離為d1,求出圖中所在所有的距離相加求極小值即可,但是問題是求距離還是挺複雜的,有開方項,數學中不好計算,因此人們又提出直接使用函式值的差也是可以的,因為當函式值的差最小時,距離也是最小的,這樣可行,但是函式值相減有正有負因此需要加上絕對值,如上圖的|y-^y|,因為有絕對值不好計算,因此直接平方就不用考慮正負的事了,所以最終的誤差距離就使用誤差平方和進行衡量了即:

真實值y,預測值為\hat{y},則平方誤差為:(y - \hat{y})^2

尋找合適的引數使的誤差平方和Rss = \sum_{i=1}^{n}(y_{i} - \hat{y}) 最小

 我們的優化函式就找到了,下面只需求出使誤差平方和極值最小的引數(係數)即\alpha ,\beta

從上式可以看出Rss是\alpha ,\beta的函式,使用最小二乘法(無偏估計)或者求偏導都可以求出引數\alpha ,\beta ,下面使用求偏導,使其等於0求出\alpha ,\beta

其中X_{i},Y_{i}是資料,\bar{X},\bar{Y}是均值,把資料帶進去就可以確定係數了,最簡單的一元線性迴歸就求出來了,下面我們把其擴充到多元線性迴歸中:

多元線性迴歸:

多元迴歸我們會使用矩陣來表示:

假設訓練資料為:

求和可以寫成矩陣的形式:

 多元和一元差不多,不同的是一元迴歸是線,而多元迴歸就是超平面了,例如二元迴歸就是平面,表示式就是形如:

                              h_{w}(x) = w_0 + w_1x_1 + w_2x_2

圖形為:

如果是三元以上的迴歸就是超平面了。

他的誤差損失函式和一元的定義很類似:

 這形式大家很熟悉吧,其實就是一元線性函式的誤差公式嘛,只是寫成矩陣的形式,解釋一下上面的引數,其中\frac{1}{2M}是求均值的。

好,到這裡大家就瞭解了上面的式子的來龍去脈,現在的問題是,這個式子可以和上面的一元線性函式一樣直接求解嗎?這裡的回答是不一定的,需要看情況,原因是什麼呢?

講原因之前先帶大家回顧一些基礎知識,大家都知道解方程吧,我們知道,如果要解兩個未知數則需要兩個方程,解三個未知數則需要3個方程才能求解出來,如果是n個未知數則需要解n個方程才能解出來,因此和我們上面的情況是一樣的,如果未知數(就是係數wi)大於資料個數,則就無法建立足夠多的方程求解,如果資料大於未知數則可以按照一元的直接求解,在矩陣裡我們成可以解出方程的為矩陣滿秩 ,大家不懂矩陣的話就按照我上面的來理解也是可以的,下面我們就分兩種情況進行說明:

可求解(矩陣滿秩):

上面求導利用到了矩陣的求導法則,不懂的建議看看矩陣論相關章節,上面還有一處錯誤就是對w求偏導時W^TX^TX少乘了一個2,應該是這樣2W^TX^TX

求偏導令其等於0,把資料帶進去就可以解出係數w了,下面我們詳細的說明一下另外一種情況即無法求解的情況:

其實就是基於最大釋然估計的梯度進行求解區域性最優值的和我的這篇文章很類似,不會的請看看那篇文章,如果那個邏輯迴歸理解了,這裡就不難,反之你是看不懂的,所以有問題別拖,及時解決他,這樣才能快速進步,下面直接給出最後的公式了:

我們知道此時的\Theta就是w了,下面我們從求解公式來看看:

假設有資料集D:

對目標函式求導,更新就是按照上面的來更新的。

這樣更新w是否合理呢? 有什麼依據呢?下面我們看看最大釋然估計是否合理:

我們的模型和之前是一樣的:

                                                                               y = Wx + \varepsilon

不過,現在讓我們假定隨機誤差符合均值為零的正態分佈

改寫模型為:

 由於樣本是獨立抽取的(不相關誤差是高斯-馬爾可夫定理的條件之一),資料的似然看起來會是密度函式p(yi)的積。讓我們考慮對數似然,對數似然允許我們用和替換積:

我們想要找到最大似然假設,即,我們需要最大化表示式p(y ∣ Xw) 以得到wML。這和最大化其對數是一回事。注意,當我們針對某個引數最大化函式時,我們可以丟棄所有不依賴這一引數的成員:

所以,我們看到了,最大化資料的似然和最小化均方誤差是一回事(給定以上的假定)。實際上,這是因為誤差是正態分佈的。 

因此完全可以使用最大釋然估計進行求解,下面我們再從概率統計方面看看線性迴歸的誤差性質:

偏置-方差分解:

我們詳細看看回歸誤差的性質,這個性質不僅僅在這個演算法中有效,在其他的機器學習演算法中也是適用的,下面需要一點概率論的知識:

目標變數的真值是確定性函式f(x)和隨機誤差ϵ之和:

誤差符合均值為零、方差一致的正態分佈:

目標變數的真值亦為正態分佈:

我們試圖使用一個協變數線性函式逼近一個未知的確定性函式f(x),這一協變數線性函式,是函式空間中估計函式f的一點(具體而言,我們限定函式空間的線性函式家族),即具均值和方差的隨機變數。

因此點x的誤差可分解為:

上面的公式這個大家都懂吧,求均值的,然後拆開求均值,最後一行為了化簡方便,把函式的變數都省去了,這只是方便起見。

求方差的公式大家還記得嗎?下面我把方程的公式給出,不知道為什麼這樣的請檢視概率的方差章節,

我們按照方差的公式可有求出E[y^2],E[\hat{f}^2],2E[y\hat{f}]:

前兩項:

最後一項:有一個前提就是誤差和目標變數相互獨立

 上面的計算都是概率論方面的簡單計算,如果感覺到吃力,建議多看看概率論方面的書籍。

最後我們可以合併一下:

 最後我們得到了預測誤差的三部分組成:

平方偏置、方差、不可消除誤差

不可消除誤差我們無法處理,但是前兩部分我們可以處理,理想情況下我們希望同時把前兩項都消去,但是實際我們很難同時消去這兩項,常常需要在兩者中找平衡。

 由上圖我們可以發現bias是資料偏離中心的程度,而var是資料的離散程度。

一般而言,當模型的計算增加了(例如,自由引數的數量增加了),估計的方差(分散程度)也會增加,但偏置會下降。由於模型完全記下了訓練集而沒能概括訓練集,小小的變動將導致未預期的結果(過擬合)。另一方面,如果模型太弱,它將不能夠學習模式,導致學習偏離正解較遠的不同答案,如下圖:

高斯-馬爾可夫定理斷言,線上性模型引數估計問題中,OLS估計是最佳的線性無偏估計。這意味著,如果存在任何無偏線性模型g,我們可以確信:

線性迴歸正則化:

在一些情形下,我們可能會為了穩定性(降低模型的方差)特意增加模型的偏置。高斯-馬爾可夫定理的條件之一就是矩陣X是滿秩的。否則,OLS解w = (x^Tx)^{-1}x^Ty不存在,因為逆矩陣(x^TX)^{-1}不存在。換句話說,矩陣X^TX將是奇異矩陣或退化矩陣。這被稱為病態問題。這類問題必須加以矯正,也就是說,矩陣X^TX需要變為非退化矩陣或非奇異矩陣(這正是這一過程叫做正則化的原因)。我們常常能在這類資料中觀察到所謂的多重共線性:當兩個或更多特徵高度相關,也就是矩陣X的列之間“幾乎”存線上性依賴。例如,在基於引數預測房價這一問題中,屬性“含陽臺面積”和“不含陽臺面積”會有一個“幾乎是”線性的關係。形式化地說,包含這類資料的矩陣X^TX是可逆的,但由於多重共線性,一些本徵值會接近零。在X^TX的逆矩陣中,會出現一些極端巨大的本徵值,因為逆矩陣的本徵值為1/(λi)。這一本徵值的波動會導致模型引數估計的不穩定,即,在訓練資料中加入一組新的觀測會導致完全不同的解。有一種正則化的方法稱為吉洪諾夫正則化,大致上是在均方誤差中加上一個新成員: 

吉洪諾夫矩陣常常表達為單位矩陣乘上一個係數:

在這一情形下,最小化均方誤差問題變為一個L2正則限定問題。如果我們對新的損失函式求導,設所得函式為零,據w重整等式,我們便得到了這一問題的解:

這類迴歸被稱為嶺迴歸。嶺為對角矩陣,我們在XTX矩陣上加上這一對角矩陣,以確保我們能得到一個常規矩陣。

到這裡我們基本上講完了 一元和多元的線性迴歸,也稍微提了一下嶺迴歸,下節會詳細介紹嶺迴歸,本篇的重點是對線性迴歸的誤差函式的分析,已經最大釋然估計和誤差平方和的關係。

本篇文章主要參考:

Mail.Ru資料科學家Yury Kashnitsky深入講解線性分類和線性迴歸的理論與實踐