初識機器學習:迴歸分析

語言: CN / TW / HK

這是我參與「掘金日新計劃 · 8 月更文挑戰」的第8天,點選檢視活動詳情

迴歸分析(Regression Analysis)是一種統計學上分析資料的方法,目的在於瞭解兩個或更多變數是否相關、關係方向和關係強度,並以此建立數學模型,通過觀察特定變數來預測研究者感興趣的變數。它可以幫助我們在自變數變化時因變數的變化情況。

在機器學習中,迴歸分析資料監督學習的範疇,可以用於資料的預測。迴歸分析可以通過多個預測變數來預測結果,並且能夠這些變數對結果的影響程度。

簡單線性迴歸

這裡我們可以引入一個預測房價的例子,假設某地的放房價主要受房間數和周圍居民的收入水平影響,我們可以根據調研資料,繪製趨勢線。

下圖是放假與房間數的關係圖:

在圖中,我們可以看到房間數與房價的大致關係,並繪製一條趨勢線,根據這條趨勢線,我們大致可以預測,有8個房間的房子,單價大概率在 38.15 附近。

根據對房價與周圍居民收入的調研,可以得到以下的圖表,圖表中的橫軸表示周圍低收入居民的比例,縱軸表示房價:

可以看出,隨著周圍低收入居民比例的上升,房價呈下降趨勢,並且根據這些點,我們同樣可以畫一條大致的趨勢線。

通過對這些調研資料的整理,我們便可以使用房間數和低收入居民的比例對房價進行預測。

提高準確度

為了提高準確度,我們可以將房間數和低收入人群佔比進行結合,來進行預測。但是,兩個因素對房價的影響強度大小肯定是不一致的,所以,我們需要給兩個因素不同的權重,最終可以表示為:

$$$$房價 = a * 房間數 + b * 低收入人群佔比 $$$$

以上的等式只是表示他們的關係,這裡的 a 和 b 分別代表兩個因素的權重。這樣,通過一個帶權重的組合變數,就能夠得到更準確的結果。

迴歸係數

以上分析結果中,最終得到的變數權重,也叫做迴歸係數。他表示某個變數對預測結果的影響方向和大小。由於多個變數之間的計量單位是不同的,計量單位的選擇也會影響迴歸係數的大小。比如:一個表示重量的變數,使用克和千克兩種單位表示時,迴歸係數會相差1000被,因此,我們在做分析之前,要先對變數的度量單位進行標準化。最簡單的方法就是用一個百分位數來表示每個變數,這樣得到的迴歸係數叫做標準迴歸係數,能夠更客觀地反映出那個變數對預測結果的影響更大。

比如:標準化後的 房價 = 2.1 * 房間數 + 5.5 * 低收入人群佔比 就比沒有標準化的 房價 = 2.1 * 房間數 + 550 * 低收入人群佔比 更能反應兩個變數對預測結果的影響關係。

相關係數

如果我們只使用一個變數來預測結果,那麼這個變數的標準化迴歸係數也叫做相關係數。

相關係數一般會用一個 -1 到 1 之間的數字表示,它能夠給我提供兩個資訊。以文章開頭的例子中,低收入人群佔比和房價之間的關係趨勢線來說明:

圖中資料點的集中程度,代表了預測變數對預測結果的影響強度,預測變數對結果的影響強度越大,這個數值就越接近於 1 或者 -1。

另一個資訊就是,根據這些點所畫出的趨勢線的方向,上圖中,預測變數和預測結果之間的變化方向是相反的,也就是低收入居民的比例越高,房價越低,則相關係數是負的,反之相關係數就是正的。

權重的失真

有時候,預測變數的選擇會導致權重的失真,也就是,導致我們得到不正確的權重資訊。

舉個例子,比如,我們在預測房價的例子中,再增加一個「房屋面積」的預測變數。 得到如下關係:

$$$$房價 = a * 房間數 + b * 低收入人群佔比 + c * 房屋面積 $$$$

在普遍情況下,房屋面積和房間數有非常強的正相關關係,也就是說,房間數更多的房屋,面積也會更大,因此,上述關係中,表示權重的 a 和 c 並不能準確表示房間數或者房屋面積對預測結果影響的真實強度。

所以,需要我們在分析之前,就把相關度比較高的變數進行排除或者合併。

其他

另外,我們通過迴歸分析所得到的相關關係,並不代表因果關係。