多項式回歸 房價與房屋尺寸的非線性擬合

2021-10-02 18:20:33 字數 1764 閱讀 8886

多項式回歸

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看成...