機器學習A-Z~評估迴歸模型的表現

本文開始講解關於如何評估迴歸模型的表現的幾個方式。

R平方

首先來講一下前面也有提到的R平方的概念。來看下面這個例子。下面紅色的是數據對應的點,黑色的直線是我們擬合出來的一條簡單線性線性迴歸。

怎麼擬合這條直線呢?實際上就是假設平面上有一條直線,我們將這些數據點向這條直線上做投影,那麼這些投影和實際值的差的平方和最小時就能得到這條直線。這個也有個專業術語叫做剩餘平方和($SS_{res}$)。

接下來還有一種看待數據的方式,假設定義$y_{avg}$即y的平均值,如圖中黑色直線,然後表示出所有數據點,那麼這個時候也可以同樣的將所有點對這條線做投影,此時將這些點和平均值的差值平方和叫作共平方和($SS_{tot}$)。

這個表達方式相對於剩餘平方和不是很常見,但這個項和這些數據的方差有很大關係,因爲方差其實就是這裏平方和的前面乘以一個係數。

定義完了剩餘平方和和共平方和後我們就可以定義要說的R平方。如下所示:

$$ R^2 = 1 - \frac{SS_{res}}{SS_{tot}} $$

首先我們看看這個共平方和,實際上和擬合出來的線性迴歸模型是沒有什麼關係的,因爲只要有這些數據點,那這個共平方和是永遠存在的。那麼會不會出現共平方和爲0呢?在實際情況下一般是不存在的,因爲那所有數據是一樣的。其實圖中這條水平直線也是線性迴歸模型的一種,這種方式就是以所有因變量的平均值來進行模擬,不考慮自變量的變化。共平方和也是剩餘平方和的一種。當這個剩餘平方和越小,那麼這裏的R平方越大,即模型越好,R平方最大就爲1。那麼什麼時候R平方會爲負的呢?很簡單其實就是剩餘平方和比共平方和還要大,但這種情況也是基本不會出現。

廣義R平方(Adjusted $R^2$)

對於上述所說的R平方也是存在一定的侷限性。現在來更深入的談談這個R平方。因爲剛剛所說的R平方所針對的實際上是簡單線性迴歸。如果說此時有個多元線性迴歸模型$y = b_0 + b_1 * x_1 + b_2 * x_2$,R平方會發生什麼樣的變化?

對於多元線性迴歸,R平方的定義還是類似的,依然是個最優化問題。我們需要尋找$b_0,b_1,b_2$這些參數,來使得其剩餘平方和最小。我們知道R平方是越大越好,那這裏就有個核心的問題。假設這裏有個線性迴歸模型是兩個自變量的,此時再給它添加一個新的自變量,R平方會發生什麼變化?這裏先講一個結論:R平方永遠不會降低。也就是說,當我們新加一個自變量,不管這個自變量是什麼,我們模型的擬合效果只會越來越好。這裏給個簡單的證明:

假如說可以找到一個b3可以使得擬合效果更好,即使得剩餘平方和更小,由於共平方和是固定的,所以整個的R平方會升高。那麼假設說我們嘗試了很多的b3都無法使得剩餘平方和更小,但有個最差的選擇,就是b3爲0。此時就相當於沒有加上這個b3,R平方自然不會降低。

用之前說提過的薪水的例子來說,這裏的自變量可以包括工作年限和職位,此時如果再加入一個手機尾號來做爲新的自變量,當然從直觀的感覺上都知道這個跟薪水沒什麼關係。但從數據上而言,是能找到一絲關聯性的,因此這時的b3會很接近於0但不會是0。此時的R平方會更大。但這時能說這個模型就是擬合的更好麼?顯然是不合理的。這時就看出了R平方的侷限性。需要用廣義的R平方來進行評估:

$$ Adj R^2 = 1 - (1 - R^2) * \frac{n-1}{n-p-1} $$

這裏p是指number of regressors(自變量個數),n是指sample size(數據個數)。n由於是數據集的大小,因此跟模型沒什麼關係,但這裏的p對於擬合的模型實際上有一種懲罰的效果,當p升高時,這裏的分母就會降低,那麼這個分數項就會升高,而此時R平方又會升高,那麼$1-R^2$就會降低,此時實際上就有一種類似拔河的感覺,兩個乘數一個升高一個降低,我們就不知道這個廣義R平方到底會降低還是升高。這就要看這個新加入的自變量對於模型的精準度是否有幫助,能不能彌補後面的懲罰項。這個廣義R平方就能來評估多元線性迴歸模型的好壞的一個很好的參數。這時回過頭看之前的一個多元線性迴歸模型的擬合結果會發現有不同的看法了。這裏就不去贅述,可以自己去嘗試。

因爲這裏的R平方是個比較客觀的數值來評判模型的好壞,而不是自己主觀定義的比如之前的p值。因此R平方能更好的反映出一個模型的好壞。但是不是說之前說的p值反向淘汰算法等等沒有意義了,因爲這個反向淘汰給予了我們一個順序來一步步的刪除自變量中的一個,直到達到了最好的模型,這也就我們比較不同模型之間的廣義R平方的最好的條件。

迴歸模型係數的含義

現在再來講講多元線性迴歸中各個參數代表着什麼樣的意義。繼續說之前的公司年收入的例子。首先看看這些參數的符號代表的意義。這個其實很明顯,比如如果所有參數符號都是正的,很明顯如果自變量越大那麼因變量就會越大。

接下來看參數的大小,比如自變量有市場營銷的開支和研發的開支。如果研發的開支的係數是市場營銷的20倍,是否能說研發的開支對公司年收入的影響要遠遠大於市場營銷的開支帶來的影響呢?但這裏不能這樣隨便的下結論,因爲參數的大小沒有很顯然的影響。假設這裏研發的參數值時0.7379,研發開支的單位是美元,那如果用萬美元來做單位,對於現在的模型,這裏的參數則要變成7379,此時顯然不能說現在的研發開支相對於之前的研發開支的影響力要大很多。因此這裏係數的大小和其自變量的大小也是息息相關的。但我們可以做出的結論是:在單位自變量的變化下,這個參數代表着相應因變量會有多少變化。而且在更多的情況下,不同的自變量的單位也是不同的,因此這裏要注意是單位自變量的變化下。但如果兩個自變量的單位是相同的,比如這裏的研發開支和市場營銷的單位就是一樣的。也就是說花一美元在研發上相當於在市場營銷上要花20美元。對於投資人,這條結論就是很有意義的,他可能就會投資更多的錢在於研發上。

再說說不同模型中,同一個自變量對應的參數很可能是不同的,它所對應的係數不僅僅和自變量本身有關,也和同一個線性迴歸模型中其他的係數存在與否,數據怎麼樣也是有關係的。因爲這每個參數代表着在某一個多元線性迴歸模型下,如果其他自變量不變,只對這一個自變量進行改變,那麼它對預測的結果所帶來的影響

以上,就是關於如何評估線性迴歸模型的介紹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章