單變量線性迴歸實現波士頓房價預測

1、預測過程

(1)、波士頓地區房價數據獲取,數據來自於sklearn自帶數據集;
(2)、波士頓地區房價數據分割;
(3)、訓練與測試數據標準化處理;
(4)、使用最簡單的線性迴歸模型LinearRegression對房價進行預測。

2、迴歸算法的評價指標有MSE,RMSE,MAE、R-Squared:

  • MSE均方誤差:
    **加粗樣式**
  • MAE平均絕對誤差:
    在這裏插入圖片描述
  • RMSE均方根誤差:
    在這裏插入圖片描述
  • 可決係數(擬合優度)
  • 在這裏插入圖片描述

3.代碼實現

#導入用到的庫
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()  #載入數據集
print(Boston.DESCR) #得到關於房價的描述信息
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))

 

代碼總結,因爲是隻考慮了房間數目爲特徵,模型明顯表現欠擬合。
 

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