【機器學習】多項式迴歸原理介紹

AI_developer發表於2019-03-10

在上一節中我們介紹了線性迴歸的原理,然後分別用python和sklearn實現了不同變數個數的線性迴歸的幾個例子。線性迴歸模型形式簡單,有很好的可解釋性,但是它只適用於X和y之間存線上性關係的資料集。對於非線性關係的資料集,線性迴歸不能很好的工作。因此本文介紹線性迴歸模型的擴充套件——「多項式迴歸」,我們可以用它來擬合非線性關係的資料集。

假設我們有一個單變數資料集,如下圖。

【機器學習】多項式迴歸原理介紹
為了觀察它們之間的關係,我們用 matplotlib 畫出散點圖。
【機器學習】多項式迴歸原理介紹
從圖中看,它們有點像在一條直線上,但仔細看更像是在一個拋物線上。

首先我們假設它們滿足線性關係,使用線性迴歸模型得到的結果如下圖中黃線所示。

【機器學習】多項式迴歸原理介紹
看起來似乎還可以,但是來看看誤差,太大了。
【機器學習】多項式迴歸原理介紹
下面我們試試用拋物線擬合它們。

線性迴歸可以通過從係數構造多項式的特徵來擴充套件。為了使推導過程更具有代表性,我們先以一個雙變數的為例,然後再看我們上面的單變數的例子。

雙變數線性迴歸模型形如下面式子:

【機器學習】多項式迴歸原理介紹
通過結合二階多項式的特徵,新增二次方項,將它從平面轉換為拋物面:
【機器學習】多項式迴歸原理介紹
用z替換x:
【機器學習】多項式迴歸原理介紹
所以,我們的式子可以寫成:
【機器學習】多項式迴歸原理介紹
這樣就變為線性迴歸模型。

同理,我們的資料集是單變數的,轉換後的式子為:

【機器學習】多項式迴歸原理介紹
計算結果如圖。
【機器學習】多項式迴歸原理介紹
線性迴歸得到的模型為:
【機器學習】多項式迴歸原理介紹
多項式迴歸得到的模型為:
【機器學習】多項式迴歸原理介紹
兩個模型如下圖所示。
【機器學習】多項式迴歸原理介紹
可以看出多項式迴歸模型的效果(綠線)要明顯好於線性迴歸模型(黃線)。

更高階的同理。

【機器學習】多項式迴歸原理介紹

相關文章