評価指標(回帰)

#pandasのインポート
import pandas as pd

#データの読み込み
boston = pd.read_csv('boston.csv')
diabetes = pd.read_csv("diabetes.csv")

#予測値のデータ読み込み
boston_predict = pd.read_csv('boston_predict.csv')
diabetes_predict = pd.read_csv('diabetes_predict.csv')
#答えを変数に入れて,実際に中に入ってるか確認
boston_answer = boston["house_price"]
print(boston_answer.head(),boston_predict.head())
0    24.0
1    21.6
2    34.7
3    33.4
4    36.2
Name: house_price, dtype: float64        0
0  25.03
1  22.00
2  35.91
3  33.80
4  35.47
#ライブラリを宣言する
from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error

#各指標を出力する
print("R2スコアは",r2_score(boston_answer,boston_predict))
print("MSEは",mean_squared_error(boston_answer,boston_predict))
print("MAEは",mean_absolute_error(boston_answer,boston_predict))

#ルートを計算するためにライブラリを使う
import numpy as np

#mseを変数において,それにルートを取る
mse = mean_squared_error(boston_answer,boston_predict)
print("RMSEは",np.sqrt(mse))
R2スコアは 0.973933685279073
MSEは 2.200506719367588
MAEは 0.9433992094861657
RMSEは 1.483410502648403
  • 使うライブラリはsklearnの中のmetricsモジュールの中にある,r2_scoremean_squared_errormean_absolute_errorというものです.
  • 分類のときと同様に,function(正解,予測)とすると,その計算結果を返してくれます.
  • RMSEを直接出す関数はないので,MSEを変数において,numpyというライブラリでルートを取って算出しました.

このデータは大体10から50くらいの値のデータです.±1.48程度なら,かなり正確な予測ができると言っても良さそうですね

【小話】
RMSEは外れ値に敏感に反応し,MAEは外れ値に鈍感という特徴があります.

コメント

タイトルとURLをコピーしました