線性回歸(三) 多項式回歸

2021-10-02 06:22:20 字數 1433 閱讀 3702

​ 多項式回歸不再用直線擬合,而是使用曲線或曲面,我們要找的函式變成了h(x

)=θ0

+θ1x

+θ2x

2+…θ

nxnh(x) = \theta_0+\theta_1x+\theta_2x^2+…\theta_nx^n

h(x)=θ

0​+θ

1​x+

θ2​x

2+…θ

n​xn

還是要找到這些係數。

​ 其實跟多元線性回歸一模一樣,把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 按列拼接 ...