跳轉到內容

數值方法簡介/迴歸

來自華夏公益教科書,開放的世界,開放的書籍

目標

  • 定義線性迴歸模型和非線性迴歸模型。
  • 思考擬合優度標準。
  • 推匯出線性迴歸模型的係數。
  • 推匯出非線性迴歸模型的係數

資源

迴歸與插值不同,因為它允許我們近似超定系統,該系統方程數多於未知數。當精確解過於昂貴或由於資料中的誤差(例如測量誤差或隨機噪聲)而變得不必要時,這很有用。

線性迴歸

[編輯 | 編輯原始碼]

線性迴歸找到一條最接近透過給定資料點的線性函式 - 迴歸(函式)線最適合資料。我們必須定義用於衡量擬合優度的指標。如果所有資料點都位於函式上,則這是一個完美的擬合,否則函式對資料的表示存在誤差。我們可以衡量資料點與函式的偏差。如以下示例所示 (來源),誤差之和或絕對誤差之和都不是一個好的指標。資料包括四個點(2, 4)、(3, 6)、(2, 6)和(3, 8)。我們使用一條直線來擬合數據。兩個可能的解在iPython 筆記本(示例 1)中顯示。

直線(一個變數)

[編輯 | 編輯原始碼]

讓我們看看將一條直線擬合到資料的示例,即找到一個具有一個變數的線性迴歸模型來表示資料。該函式是 ,要最小化的(成本)誤差平方和函式為

我們可以透過將函式的梯度設定為零來最小化該函式。因為該函式有兩個引數(變數),所以有兩個梯度方程

偏導數表示函式值相對於一個自變數的變化率,而所有其他變數保持不變。當偏導數變為零時,這意味著變化已經停止。這意味著我們已經達到最小值或最大值,這可以透過檢查二階導數的符號來確定。

讓我們考慮

以及

,

我們可以推匯出

.

因此,我們可以計算 如下

.

給定以下定義

我們得到

.

多元線性迴歸

[edit | edit source]

線性迴歸線模擬了自變數(預測變數)和因變數之間的關係。建立模型後,可以用於預測。在幾乎所有現實世界的迴歸模型中,都會涉及多個預測變數(自變數)來模擬影響系統響應(因變數)的多個因素。這樣的模型被稱為多元線性模型。

正規方程

[edit | edit source]

另一種找到最小化誤差平方和的迴歸模型引數的方法是求解相應的正規方程。給定矩陣方程,正規方程是最小化左右兩邊平方差之和的方程

.

給定一個假設的迴歸模型和一個數據集,我們可以構建左側以表達模型使用資料預測的值。A 應該是一個 矩陣,其中每一行代表 個數據點(樣本)中的一個,每一行中的每一列代表 個引數中的每一個的乘數。 是一個 列向量,用於表示未知引數。右側 應該是一個 列向量,儲存對應的資料點的 值。

回憶一下,用直線(模型) 擬合以下資料點。

資料點
x y
2 4
2 6
3 6
3 8

我們可以構建矩陣方程 的左側,即

,

這應該得到一個列向量,其中包含我們模型預測的值

.

右側應該是資料點對應值的向量

最小化左側和右側之間平方差之和等價於求解以下正規方程

.

我們例子的正規方程是

如果 可逆,則解向量應該是唯一的,併為我們提供引數 的值,這些值將最小化模型和資料之間的差異,即模型最適合資料。

當我們確定一個形式為 的迴歸線來擬合四個資料點時,我們有四個方程可以寫成

為了解決模型,我們實際上是在最小化.

上一節中介紹的方法歸結為求解以下形式的兩個未知數的線性方程組。

不難想象,當有 個獨立變數和 個數據點時,我們可以推匯出一個類似的具有 個未知數的線性方程組。然後可以使用數值方法(例如高斯消元法)來求解引數。我們也可以使用正規方程和矩陣運算來求解引數。

梯度下降法

[edit | edit source]

梯度下降法 是一種尋找函式區域性最小值的方法。該方法基於梯度的概念,梯度是函式在一維中的導數(斜率或切線)在多維空間中的推廣。對於具有 個變數的函式,特定點處的梯度是一個向量,其分量是函式的 個偏導數。下圖顯示了函式的梯度。

函式 f(x,y) = −(cos2x + cos2y)2 的梯度,作為底部平面上投影的向量場表示。

由於梯度指向函式增長率最大的方向,其大小是該方向上圖的斜率,因此我們可以從一個隨機點開始,並沿著當前點的負梯度方向進行步進,以找到區域性最小值——梯度下降或最速下降。

回想一下,多維空間中的梯度是成本函式相對於各個維度的引數的偏導數。

梯度下降法可以用來解決非線性迴歸模型。

非線性迴歸

[edit | edit source]

非線性迴歸 透過一個非線性函式對觀測資料中的關係進行建模,該函式是模型引數的非線性組合,並且依賴於一個或多個自變數。一些非線性迴歸問題可以轉化為線性域。例如,求解 等價於求解 ,其中

這是一個 例子,展示了使用梯度下降法求解非線性迴歸模型。

華夏公益教科書