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))
代碼總結,因爲是隻考慮了房間數目爲特徵,模型明顯表現欠擬合。