多項式回歸不再用直線擬合,而是使用曲線或曲面,我們要找的函式變成了h(x
)=θ0
+θ1x
+θ2x
2+…θ
nxnh(x) = \theta_0+\theta_1x+\theta_2x^2+…\theta_nx^n
h(x)=θ
0+θ
1x+
θ2x
2+…θ
nxn
還是要找到這些係數。
其實跟多元線性回歸一模一樣,把x
nx^n
xn看成是x
nx_n
xn就完事兒了,跟多元線性回歸毫無區別,忘了就去看看多元線性回歸那篇.
如果是多元的多項式回歸,同樣可以轉化為多元的線性回歸,道理一樣。把非線性的項看成乙個新的特徵即可,多加幾列而已。
# encoding:utf-8
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import polynomialfeatures
from sklearn.linear_model import linearregression
# 載入資料
data = np.genfromtxt(
"../data/job.csv"
, delimiter=
',')
x_data = data[1:
,1, np.newaxis]
y_data = data[1:
,2, np.newaxis]
# 定義多項式回歸
poly_reg = polynomialfeatures(degree=4)
# degree代表多項式最高次數
# 特徵處理
x_poly = poly_reg.fit_transform(x_data)
# 定義回歸模型
lin_reg = linearregression(
)lin_reg.fit(x_poly, y_data)
# 畫圖
plt.plot(x_data, y_data,
'g.'
)# 把點搞得多一點,這樣曲線看起來平滑一點
線性回歸與多項式回歸
線性回歸是最簡單的一種機器學習演算法,可分為一元線性回歸和多元線性回歸 也就是特徵數量不同 這裡先主要介紹一元線性回歸。舉乙個簡單的例子,有一組帶標籤樣本 xi,yi x是特徵y是響應變數 標籤 認為他們服從線性方程 y i a bx i cy i a bx i c yi a bxi c其中b是回歸...
多項式回歸
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 按列拼接 ...