波士頓房價預測-code

波士頓房產數據集

  • 波士頓房產數據集:使用sklearn.datasets.load_boston即可加載相關數據。該數據集共有 506 個觀察,13 個輸入變量和1個輸出變量。
  • 基於該數據對波士頓房產數據集做最簡單的線性迴歸,這裏只考慮房間數特徵。

迴歸算法評價指標

  • MSE,RMSE,MAE、R2

在這裏插入圖片描述

代碼

#導入用到的庫
import sklearn.datasets as datasets
from sklearn.linear_model import LinearRegression  #線性迴歸模型
from sklearn.model_selection import train_test_split #切分訓練集和測試集
import pandas as pd
import numpy as np

Boston = datasets.load_boston()  #載入數據集
x = Boston.data[:,5]  #得到RM列的數據
x = x.reshape(-1,1) #變爲1列
y = Boston.target
y = y.reshape(-1,1) #變爲1列

#分割數據集爲訓練集與測試集
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.25,random_state = 0)
#創建線性迴歸模型
regr = LinearRegression()
#用訓練集訓練模型
regr.fit(x_train,y_train)
#用訓練得出的模型進行預測
y_pred = regr.predict(x_test)

#根據公式計算所得結果
mse_test = np.sum((y_pred-y_test)**2)/len(y_test)
mae_test = np.sum(np.absolute(y_pred-y_test))/len(y_test)
rmse_test = mse_test ** 0.5
r2_score = 1- (mse_test/ np.var(y_test))
print('根據公式所得結果如下:')
print('均方誤差:{},平均絕對誤差:{},\n均方根誤差:{},可決係數:{}'.format(mse_test,mae_test,rmse_test,r2_score))
print()
from sklearn.metrics import mean_squared_error #均方誤差
from sklearn.metrics import mean_absolute_error #平方絕對誤差
from sklearn.metrics import r2_score #R square
#調用函數獲得結果
mse_test1 = mean_squared_error(y_test,y_pred)
mae_test1 = mean_absolute_error(y_test,y_pred)
rmse_test1 = mse_test1 ** 0.5
r2_score1 = r2_score(y_test,y_pred)
print('直接調用函數所得結果如下:')
print('均方誤差:{},平均絕對誤差:{},\n均方根誤差:{},可決係數:{}'.format(mse_test1,mae_test1,rmse_test1,r2_score1))

根據公式所得結果如下:
均方誤差:43.472041677202206,平均絕對誤差:4.212526305455822,
均方根誤差:6.593333123481795,可決係數:0.467900054313678

直接調用函數所得結果如下:
均方誤差:43.472041677202206,平均絕對誤差:4.212526305455822,
均方根誤差:6.593333123481795,可決係數:0.4679000543136781

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章