始める無料で始める

複数のデータポイントへの拡張

単一の予測でも、重みが違えば精度が変わることを見ました。ですが、通常は多くの点でモデル精度を評価します。ここでは、weights_0weights_1 に保存された 2 つの重みセットでモデル精度を比較するコードを書きます。

input_data は配列のリストで、そのリストの各要素には 1 回の予測に必要なデータが入っています。 target_actuals は数値のリストで、各要素は予測対象の実際の値です。

この演習では、sklearn.metricsmean_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)
コードを編集して実行