繼上次對成都房租進行視覺化後,這次簡單的做乙個成都房租與面積、所屬區的多元回歸分析。
資料集一共有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這樣的三次模型。如果像這樣選擇...