Regression 回歸 多項式回歸

2022-01-24 01:08:21 字數 1294 閱讀 5261

回歸是指擬合函式的模型、影象等。與分類不同,回歸一般是在函式可微的情況下進行的。因為分類它就那麼幾類,如果把類別看做函式值的話,分類的函式值是離散的,而回歸的函式值通常是連續且可微的。所以回歸可以通過梯度下降法來進行。

比如對於函式$y =b + wx$,$x$是輸入變數,$w$和$b$是引數。可以使用訓練集輸入一組$x$和$y$來進行對$w$和$b$的訓練。

下面舉多項式回歸為例,也就是選擇多項式為模型的假設空間,訓練多項式的係數

泰勒公式我們可以知道,多項式可以擬合任何函式。不論是一維的還是多維的,所以如果使用多項式來進行回歸,我們可以提公升它的次數來更精細地擬合。多維泰勒公式(因變數$x$是m維向量,在$x = p$處展開):

$f(x) = f(p) + \sum\limits_^m (x_i - p_i)f'_(x) + \frac \sum\limits_^ (x_i - p_i)(x_j - p_j)f''_(x) + o(x^2)$

將各次都提取到一塊兒,得到如下:

$f(x) = b + \sum\limits^ w_i^x_i + \sum\limits^ w_^x_ix_j + \sum\limits^ w_^x_ix_jx_k + ...$

因此對於$y = b + w_1x + w_2x^2 + w_3x^3 +...$其中的$x$是多維向量,$x^2$就是$x$所有元素相乘後的矩陣,就是二次,相應的$x^3$是$x^2$係數矩陣中所有元素與$x$所有元素相乘後的立方陣,就是三次,然後一直推廣到$x^n$(n次,也就是nd張量)。其中的$w_n$則是$x^n$對應規模的陣子,$w_nx^n$就是它們對應元素相乘後之和。

如果再加上正則項(用於防止引數w過大),則對於使用多項式的回歸來說,需要人工設定的超引數就是:

1、函式的次數(函式的次數和函式的輸入變數的維數,決定了整個函式需要優化的引數的數量)。

2、正則項的引數$\lambda$等。

如果需要回歸的函式的多項展開式是無窮級的,如三角函式,那麼如果只使用多項式來回歸的話是永遠也不可能完全擬合的。所以一般還會加上別的函式來擬合。比如在深度學習中,由於有各個神經元之間的連線有閾值,就能理論上擬合任意的函式。

另外,上面的高次冪可以通過增加維度來降冪計算,比如將$w_^x_ix_j$轉化為新的輸入維度$w_^x_$(因為轉化之前$x$是m維的,轉化後在m維後面再加維度)但是這並不會減少模型優化的複雜度,它只是看起來好像從高次模型轉化為了線性模型來進行回歸,因為需要優化的引數依然是不變的

多項式回歸

import numpy as np import matplotlib.pyplot as plt x np.random.uniform 3,3,size 100 x x.reshape 1,1 y 0.5 x 2 x 2 np.random.normal 0,1,100 plt.scatter...

多項式回歸

多項式回歸 import torch import numpy defmake features x 獲取 x,x 2,x 3 的矩陣 x x.unsqueeze 1 將一維資料變為 n,1 二維矩陣形式 return torch.cat x i for i in range 1 4 1 按列拼接 ...

多項式回歸

線性回歸適用於資料成線性分布的回歸問題,如果樣本是非線性分布,線性回歸就不再使用,轉而可以採用非線性模型進行回歸,比如多項式回歸 多項式回歸模型定義 與線性模型,多項式模型引入了高次項 y w 0 w1 x w2 x2 w 3x3 wnxn y w 0 w 1x w 2x 2 w 3x 3 w nx...