検証内容を確認しよう 第20回 人工知能
from sklearn.metrics import mean_squared_error
# 予測値の取得
y_pred = model.predict(X_test)
# 二乗平方根で誤差を算出
mse = mean_squared_error(y_test, y_pred)
print("KERAS REG RMSE : %.2f" % (mse ** 0.5))
print("KERAS REG SCORE: %3.2f" % (1.0 - mse ** 0.5 / y_test.mean()))
# 可視化
pd.DataFrame({"pred":y_pred, "act":y_test})[:100].reset_index(drop=True).plot(figsize=(15,4))
# 予測値の取得
y_pred = model.predict(X_test)
# 二乗平方根で誤差を算出
mse = mean_squared_error(y_test, y_pred)
print("KERAS REG RMSE : %.2f" % (mse ** 0.5))
print("KERAS REG SCORE: %3.2f" % (1.0 - mse ** 0.5 / y_test.mean()))
# 可視化
pd.DataFrame({"pred":y_pred, "act":y_test})[:100].reset_index(drop=True).plot(figsize=(15,4))
前回の最後のmodel.scoreですが、これは、検証で使っていると書きました。
トレーニングは、計算の方法を探るべくデータを使っていました。
でtestは、検証用。つまり検証として
X_testで計算した予測データが、y_testとどのくらいズレがあるかを確認する必要があります。
というわけで流れは、X_test から出す答え y_pred が実データ y_test とどのくらい違うのか?
もうすでに、X_testとy_testは分かっているので、y_oredを求めればいいわけです。
それが今回のコードです。
最初の行
from sklearn.metrics import mean_squared_error
これは、誤差を計算する関数を使うよ!って宣言です。
さぁ計算です。
mse = mean_squared_error(y_test, y_pred)
はい、計算です。 y_testとy_predがどのくらい違っているのか?を計算します。
この段階で出た数字が何の意味があるのか? 自分にはわかりません。
はい次の行
print("KERAS REG RMSE : %.2f" % (mse ** 0.5))
print("KERAS REG SCORE: %3.2f" % (1.0 - mse ** 0.5 / y_test.mean()))
print("KERAS REG SCORE: %3.2f" % (1.0 - mse ** 0.5 / y_test.mean()))
これ実行すると
KERAS REG RMSE : 388
KERAS REG SCORE: 0.94
KERAS REG SCORE: 0.94
みたいな数字が出てきます。
さっき誤差のパラメータを計算しました。
それに基づいて、y_testの誤差を測ってます。その数字です。
上のKERAS REG RMSE: の横の数字は、誤差の実数。
下のKERAS REG SCORE: の横の数字は、正解率。0.94は、94%と考えてよい。
みたいな感じです。
これで人工知能の計算結果に信憑性ある計算になっているか、どうか、の1つ判別がつきます。
最後の
pd.DataFrame({"pred":y_pred, "act":y_test})[:100].reset_index(drop=True).plot(figsize=(15,4))
これは、単に、誤差をグラフに表示するだけで、見ないなら削除しても問題は無いかと。
次回はいよいよ予測。
今まで教師データがあったが、今度は無い。
そのやり方についてです。
今回はここまで
コメント
0 件のコメント :
コメントを投稿