複数のデータポイントへの拡張
単一の予測でも、重みが違えば精度が変わることを見ました。ですが、通常は多くの点でモデル精度を評価します。ここでは、weights_0 と weights_1 に保存された 2 つの重みセットでモデル精度を比較するコードを書きます。
input_data は配列のリストで、そのリストの各要素には 1 回の予測に必要なデータが入っています。
target_actuals は数値のリストで、各要素は予測対象の実際の値です。
この演習では、sklearn.metrics の mean_squared_error() 関数を使います。真値と予測値を引数に取ります。
また、事前に読み込まれている predict_with_network() 関数も使います。最初の引数にデータの配列、2 番目の引数に重みを渡します。
この演習はコースの一部です
Pythonで学ぶDeep Learning入門
演習の手順
sklearn.metricsからmean_squared_errorをインポートします。forループでinput_dataの各行を反復します:predict_with_network()関数で各行に対してweights_0を用いて予測し、model_output_0に追加します。- 同様に
weights_1でも予測し、model_output_1に追加します。
mean_squared_error()関数を使って、まずmodel_output_0、次にmodel_output_1の平均二乗誤差を計算します。最初の引数は実測値(target_actuals)、2 番目の引数は予測値(model_output_0またはmodel_output_1)です。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from sklearn.metrics import mean_squared_error
# Create model_output_0
model_output_0 = []
# Create model_output_1
model_output_1 = []
# Loop over input_data
for row in input_data:
# Append prediction to model_output_0
model_output_0.append(____)
# Append prediction to model_output_1
model_output_1.append(____)
# Calculate the mean squared error for model_output_0: mse_0
mse_0 = ____
# Calculate the mean squared error for model_output_1: mse_1
mse_1 = ____
# Print mse_0 and mse_1
print("Mean squared error with weights_0: %f" %mse_0)
print("Mean squared error with weights_1: %f" %mse_1)