#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_score
とmean_squared_error
とmean_absolute_error
というものです. - 分類のときと同様に,
function(正解,予測)
とすると,その計算結果を返してくれます. - RMSEを直接出す関数はないので,MSEを変数において,numpyというライブラリでルートを取って算出しました.
このデータは大体10から50くらいの値のデータです.±1.48程度なら,かなり正確な予測ができると言っても良さそうですね
【小話】
RMSEは外れ値に敏感に反応し,MAEは外れ値に鈍感という特徴があります.
コメント