python多元線性回歸簡單實現

2021-09-24 03:12:21 字數 3154 閱讀 2921

繼上次對成都房租進行視覺化後,這次簡單的做乙個成都房租與面積、所屬區的多元回歸分析。

資料集一共有3w資料,每一組觀測值對應乙個房租情況,其中:

價錢:乙個月房租,單位人民幣。

面積:租房的面積,單位平方公尺。

所屬區:序號如下

步驟1:首先使用pandas庫匯入資料:

import pandas as pd

date = pd.

read_csv

('csv/completed.csv'

)

步驟2:由於讀入的資料結構是pandas的資料幀(data frame),而scikit-learn要求的自變數x是乙個特徵矩陣,因變數y是乙個numpy向量。因此需要從原先的資料幀中轉還資料,**如下:

x

=date.loc[:,

['面積'

,'所屬區']]

y=date.loc[:,

['價錢'

]]

步驟3:在這個資料集中,由於有3w個觀測值,需要構建訓練集與測試集,同樣使用scikit-learn中的model_selection庫對資料進行劃分,**如下:

from sklearn.model_selection import train_test_split

x_train,x_test,y_train,y_test=

train_test_split(x

,y,test_size=

.9,random_state=

0)

上面**將原資料集的90%劃分為訓練集,原資料集的10%為測試集。

步驟4:使用多元回歸模型:

from sklearn.linear_model import linearregression

linreg=

linearregression()

model=linreg.

fit(x_train,y_train)

步驟5:模型訓練結束後,使用該模型進行**:

y_pred=linreg.

predict

(x_test)

步驟6:資料視覺化比較測試資料與**資料的關係,這裡為了更方便觀察,只使用了少量資料進行畫圖:

plt.

figure()

plt.

plot

(range

(len

(y_pred[1:

130]))

,y_pred[1:

130]

,'b'

,label=

"price_predict"

)plt.

plot

(range

(len

(y_pred[1:

130]))

,y_test[1:

130]

,'r'

,label=

"price_test"

)plt.

legend

(loc=

"upper right"

)plt.

show

()

最終結果如下:

全部**:

import pandas as pd

import matplotlib.pyplot as plt

import matplotlib as mpl

import numpy as np

from sklearn.linear_model import linearregression

from sklearn.model_selection import train_test_split

mpl.rcparams[

'font.sans-serif']=

['simhei'

] #指定預設字型 simhei為黑體

mpl.rcparams[

'axes.unicode_minus'

]=false #用來正常顯示負號

date = pd.

read_csv

('csv/completed.csv')x

=date.loc[:,

['面積'

,'所屬區']]

y=date.loc[:,

['價錢']]

linreg=

linearregression()

x_train,x_test,y_train,y_test=

train_test_split(x

,y,test_size=

.9,random_state=0)

model=linreg.

fit(x_train,y_train)

y_pred=linreg.

predict

(x_test)

plt.

figure()

plt.

plot

(range

(len

(y_pred[1:

130]))

,y_pred[1:

130]

,'b'

,label=

"price_predict"

)plt.

plot

(range

(len

(y_pred[1:

130]))

,y_test[1:

130]

,'r'

,label=

"price_test"

)plt.

legend

(loc=

"upper right"

)plt.

show

()

上次成都房租分析:

多元線性回歸

多元線性回歸的基本原理和基本計算過程與一元線性回歸相同,但由於自變數個數多,計算相當麻煩,一般在實際中應用時都要借助統計軟體。介紹多元線性回歸的一些基本問題。但由於各個自變數的單位可能不一樣,比如說乙個消費水平的關係式中,工資水平 受教育程度 職業 地區 家庭負擔等等因素都會影響到消費水平,而這些影...

多元線性回歸

from numpy import genfromtxt 用來讀取資料轉化為矩陣 from sklearn import linear model 含有回歸的模型 datapath r c users qaq desktop delivery dummy.csv 路徑 deliverydata ge...

多元線性回歸

比如有乙個住房 的資料集,可能會有多個不同的模型用於擬合,選擇之一像是這種二次模型 0 1x 2x2,因為直線並不能很好的擬合這些資料。但是現在如果用二次函式去考慮,可能會想到二次函式在最高點之後會下降,但是 並不會下降,並不合理,那我們可以用 0 1x 2x2 3x3這樣的三次模型。如果像這樣選擇...