多項式回歸
import matplotlib.pyplot as plt
from sklearn import linear_model
import numpy as np
from sklearn.preprocessing import polynomialfeatures
plt.rcparams[
'font.sans-serif']=
['simhei'
]#用來正常顯示中文標籤
datasets_x =
#建立datasets_x和datasets_y用來儲存資料中的房屋尺寸和房屋成交**
datasets_y =
fr =
open
('data/prices.txt'
,'r'
)lines = fr.readlines(
)#一次讀取所有資料
#print(lines)
for line in lines:
items = line.strip(
).split(
',')
#去除逗號
int(items[0]
))int(items[1]
))length =
len(datasets_x)
datasets_x=np.array(datasets_x)
.reshape(
[length,1]
)#將datasets_x轉化為陣列,並變為二維,以符合線性回歸擬合函式
datasets_y=np.array(datasets_y)
minx=
min(datasets_x)
maxx=
max(datasets_x)
x=np.arange(minx,maxx)
.reshape([-
1,1]
)#degree=2表示建立datasets_x的二次多項式特徵x_poly
poly_reg=polynomialfeatures(degree=2)
x_poly = poly_reg.fit_transform(datasets_x)
#使用線性莫想學習x_poly和datasets_y之間的對映關係
lin_reg_2 = linear_model.linearregression(
)lin_reg_2.fit(x_poly,datasets_y)
plt.scatter(datasets_x,datasets_y,color=
'red'
)#scatter函式繪製資料點
plt.plot(x,lin_reg_2.predict(poly_reg.fit_transform(x)
),color=
'blue'
)#plot函式用來繪製直線,這裡表示繪製回歸線
plt.xlabel(
"尺寸"
)plt.ylabel(
"**"
)plt.show(
)
在這裡的多項式回歸實際上是先將變數x處理成多項式特徵,然後使用線性模型學習多項式特徵的引數,以達到多項式回歸的目的。
視覺化結果
線性回歸與多項式回歸
線性回歸是最簡單的一種機器學習演算法,可分為一元線性回歸和多元線性回歸 也就是特徵數量不同 這裡先主要介紹一元線性回歸。舉乙個簡單的例子,有一組帶標籤樣本 xi,yi x是特徵y是響應變數 標籤 認為他們服從線性方程 y i a bx i cy i a bx i c yi a bxi c其中b是回歸...
多項式擬合lm 非線性回歸模型 多項式回歸
作者丨丹丹 丨醫數思維雲課堂 id datamedi 在許多實際問題分析中,回歸分析的應用十分廣泛,它是處理變數之間相關關係最常用的一種統計方法。回歸分析可分為線性回歸和非線性回歸。線性回歸分析相信大家都已經非常熟悉了,它主要分析有線性回歸趨勢的兩個變數間的關係。但是在處理許多實際問題時,變數間的關...
線性回歸(三) 多項式回歸
多項式回歸不再用直線擬合,而是使用曲線或曲面,我們要找的函式變成了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看成...