日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

数据分析-回归-案例-波士顿房价数据集

發布時間:2023/12/20 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据分析-回归-案例-波士顿房价数据集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@數據分析-回歸-波士頓房價數據集

數據來源:

boston-housing-dataset

目錄


1、目標

2、數據集介紹

3、代碼

3.1 導入必須的工具包

3.2 導入數據

3.3 數據探索

3.4 數據集劃分

3.5 模型構建

3.6?評價

1、目標

根據歷史房價數據建立回歸模型,預測不同類型房屋的價格。

2、數據集

樣本數:10000

特征數量: 13個相關屬性(即13個指標變量),1個目標變量(房價)。

特征 說明

CRIM 城鎮人均犯罪率

ZN 大于25,000平方英尺的地塊劃分為住宅用地的比例

INDUS 每個城鎮非零售業務的比例

CHAS 查爾斯河虛擬變量(如果 = 1則為河; =0則不為河)

NOX 一氧化氮濃度(每千萬)

RM 每間住宅的平均房間數

AGE 自住房屋是在1940年之前建造的比例

DIS 到加州五個就業中心的加權距離

RAD 對徑向高速公路的可達性指數

TAX 每10,000美元的全價物業稅

PTRATIO 城鎮的學生與教師比例

B 1000(Bk-0.63)^ 2其中Bk是城鎮的黑人的比例

LSTAT 低社會階層人口比例%

MEDV 以1000美元為單位的自住房屋的中位數價格

3 代碼

3.1 導入必須的工具包

import numpy as np import pandas as pd from sklearn import preprocessing from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression,Lasso,ElasticNet from sklearn.metrics import r2_score from sklearn.metrics import mean_squared_error import matplotlib.pyplot as plt %matplotlib inline import seaborn as sn

3.2 讀入數據

data = pd.read_csv("d:/datasets/HousingData.csv")#讀取csv

3.3 數據探索

查看數據的類型,完整性
查看數據的統計特征(均值、方差等)

data.head() #查看前五行 data.tail() data.sample() data.info() #查看數據的類型,完整性 data.describe() #查看數據的統計特征(均值、方差等) data.dropna(inplace=True) #刪除有缺失的樣本

通過散點圖展示各特征與目標變量的關系

for id in data.columns[:-1]:sn.pairplot(data[[id,data.columns[-1]]])

特征與標簽分離,y = 波士頓房價,X = 輸入變量

y = data['MEDV'] # 標簽-房價 X = data.drop(['MEDV'], axis=1) #去掉標簽(房價)的數據子集

3.4 數據集劃分

X_train為訓練數據, y_train為訓練集標簽,X_test為測試數據,y_test為測試集標簽。

抽取70%的數據作為訓練集, 用剩余樣本進行分類結果測試。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)

3.5? 數據標準化

Z-score標準化,在訓練集上訓練,在訓練集與測試集上標準化,泛化時標準化也用訓練集上的訓練結果。

scaler=preprocessing.StandardScaler().fit(X_train) X_train=scaler.transform(X_train) X_test=scaler.transform(X_test)

3.6 模型構建\訓練\預測\評價

LinearRegression回歸模型:

lr = LinearRegression() #實例化一個線性回歸對象 lr.fit(X_train, y_train) #采用fit方法,擬合回歸系數和截距 print(lr.intercept_) #輸出截距 print(lr.coef_) #輸出系數 可分析特征的重要性以及與目標的關系 y_pred = lr.predict(X_test)#模型預測 print("R2=",r2_score(y_test, y_pred))#模型評價, 決定系數 #print("mse=",mean_squared_error(y_test, y_pred))#均方誤差 #print(lr.intercept_) #輸出截距 #print(lr.coef_) #系數 0.7244902005756717

可視化預測值與真實值

plt.plot(y_test.values,c="r",label="y_test") plt.plot(y_pred,c="b",label="y_pred") plt.legend()

ElasticNet回歸

EN=ElasticNet(0.01) #實例化彈性網絡回歸對象 EN.fit(X_train,y_train) #訓練 y_pred=EN.predict(X_test) #預測 #評價 print(r2_score(y_pred,y_test)) #print("mse=",mean_squared_error(y_test, y_pred))#均方誤差 y_predt=EN.predict(X_train) #查看訓練集上的效果 print(r2_score(y_predt,y_train)) 0.6206474701040163 0.7143978031016661

lasso回歸

la = Lasso() la.fit(X_train, y_train)#擬合 y_pred=la.predict(X_test) #預測 #評價 print(r2_score(y_pred,y_test)) #print("mse=",mean_squared_error(y_test, y_pred))#均方誤差 y_predt=la.predict(X_train) #查看訓練集上的效果 print(r2_score(y_predt,y_train)) #prtin(la.coef_) #輸出系數 (部分系數為“0”,lasso常用與特征提取) 可分析特征的重要性以及與目標的關系 0.6463644720156518 0.7135957871520437

嶺回歸

from sklearn.linear_model import Ridge rd=Ridge(0.01) rd.fit(X_train,y_train) y_pred=rd.predict(X_test) print(r2_score(y_pred,y_test)) y_predt=rd.predict(X_train) print(r2_score(y_predt,y_train)) 0.6254595151946203 0.717315101727843

貝葉斯嶺回歸

from sklearn.linear_model import BayesianRidge Brd=BayesianRidge() Brd.fit(X_train,y_train) y_pred=Brd.predict(X_test) print(r2_score(y_pred,y_test)) y_predt=Brd.predict(X_train) print(r2_score(y_predt,y_train)) 0.6117791860152302 0.708456749967072

K近鄰回歸

from sklearn.neighbors import KNeighborsRegressor Knr=KNeighborsRegressor() Knr.fit(X_train,y_train) y_pred=Knr.predict(X_test) print(r2_score(y_pred,y_test)) y_predt=Knr.predict(X_train) r2_score(y_predt,y_train) 0.47466312380045683 0.7576061948485711

支持向量回歸

from sklearn.svm import SVR svr=SVR() svr.fit(X_train,y_train) y_pred=svr.predict(X_test) print(r2_score(y_pred,y_test)) y_predt=svr.predict(X_train) r2_score(y_predt,y_train) -0.3945293748344476 #訓練效果差到不如用均值估計 0.1313717790081549

決策樹回歸

from sklearn.tree import DecisionTreeRegressor dtr=DecisionTreeRegressor(max_depth=4) dtr.fit(X_train,y_train) y_pred=dtr.predict(X_test) print(r2_score(y_pred,y_test)) y_predt=dtr.predict(X_train) print(r2_score(y_predt,y_train)) 0.7795924378835133 0.8862706664213111

多項式回歸

from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) # 添加特征(升維) poly.fit(X_train) poly.fit(X_test) X_1 = poly.transform(X_train) X_2 = poly.transform(X_test) # 訓練 lin_reg = LinearRegression() lin_reg.fit(X_1, y_train) #預測、評價 y_pred = lin_reg.predict(X_1) print(r2_score(y_pred,y_train)) y_pred = lin_reg.predict(X_2) print(r2_score(y_pred,y_test)) 0.9613453122107047 #訓練集效果很好,測試集一般,過擬合 0.7262626772433789

總結

以上是生活随笔為你收集整理的数据分析-回归-案例-波士顿房价数据集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。