回歸準確性計算

迴歸準確性計算

之前已經創建好線性迴歸器,並且用模型對測試數據進行了預測,接下來最重要的就是如何評價迴歸器的模擬效果。在模型評價的相關內容中,用誤差表示實際值與模型預測值之間的差值。

常見的衡量回歸器擬合效果的指標如下:

  • 平均絕對誤差:這是給定數據集的所有數據點的絕對誤差平均。

  • 均方誤差:這是給定數據集的所有數據點的誤差的平方的平均值。這是最流行的指標之一。

  • 中位數絕對誤差:這是給定數據集的所有數據點的誤差的中位數。這個指標的主要優點是可以消除異常值的干擾。測試數據集中的單個壞點不會影響整個誤差指標,均值誤差指標會受到異常點的影響。

  • 解釋方差分:這個分數用於衡量我們的模型對數據集波動的解釋能力。如果得分1.0分,那麼表明我們的模型是完美的。

  • R方得分:這個指標讀作“R方”,是指確定性相關係數,用於衡量模型對未知樣本預測的效果。最好的得分是1.0,值也可以是負數。

scikit-learn裡面有一個模塊,提供了計算所有指標的功能,接著編寫《 》的代碼:

#計算迴歸準確性

import sklearn.metrics as sm

#計算平均絕對誤差

print ("Mean absolute error=", round(sm.mean_absolute_error(y_test,y_test_pred),2))

#計算均方誤差

print ("Mean squared error=", round(sm.mean_squared_error(y_test,y_test_pred),2))

#計算中位數絕對誤差

print ("Median absolute error=", round(sm.median_absolute_error(y_test,y_test_pred),2))

#計算解釋方差分

print ("Explained variance error=", round(sm.explained_variance_score(y_test,y_test_pred),2))

#計算R方得分

print ("R2 score error=", round(sm.r2_score(y_test,y_test_pred),2))

輸出結果如下:

('Mean absolute error=', 0.54)

('Mean squared error=', 0.38)

('Median absolute error=', 0.54)

('Explained variance error=', 0.68)

('R2 score error=', 0.68)

每個指標都描述得面面俱到是非常乏味的,因此只選擇一兩個指標來評估我們的模型。通常的做法是儘量保證均方誤差最低,而且解釋方差分最高。

模型訓練結束後,需要把模型保存成文件,下次再使用的時候,只要簡單地加載就可以了。代碼如下:

#保存模型

import cPickle as pickle

output_model_file = 'saved_model.pkl'

with open(output_model_file,'w') as f:

pickle.dump(linear_regressor,f)

迴歸模型會保存在saved_model.pkl文件中。下面看看如何加載使用它,代碼如下所示:

#加載使用模型

with open(output_model_file,'r') as f:

model_linregr = pickle.load(f)

y_test_pred_new = model_linregr.predict(x_test)

print("New mean absolute error = ", round(sm.mean_absolute_error(y_test,y_test_pred_new),2))

輸出結果如下:

('New mean absolute error = ', 0.54)

相關閱讀:

《 》

《 》

《 》


分享到:


相關文章: