始める無料で始める

モデルのパラメータ

これまでに一般的なモデルを作成しました。次は、新しく(事前に読み込まれた)観測データ xd, yd に対して、モデルと観測データの点がプロット上で重なるように、モデルパラメータ a0, a1具体的な値を見つけてモデルを「最適化」または「フィット」させましょう。

これは反復的な可視化の戦略です。まずパラメータの当て推量から始め、model() に渡して、得られたモデルの直線を観測データに重ね描きし、直線が点を通っているかを目視で確認します。通っていなければ、パラメータを変えて再試行します。

この演習はコースの一部です

Pythonで学ぶ線形モデリング入門

コースを見る

演習の手順

  • 関数 plot_data_and_model(xd, yd, ym) を完成させ、内部のプロット呼び出しに xd, ydxd, ym を渡してください。
  • データ xd と、推定したパラメータ a0a1 の両方を渡して ym = model() を呼び出し、モデルの予測を計算します。
    • 上のデータを確認し、最初の2つの推定値を決める際の参考にしてください。直線の当てはまりを見たあとで、これらの推定を見直してかまいません。
  • plot_data_and_model() を使って、xdydym を一緒にプロットします。
  • a0a1 の値を変更し、直線がすべての点を通るまで、直前の2つの手順を繰り返してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Complete the plotting function definition
def plot_data_with_model(xd, yd, ym):
    fig = plot_data(____, ____)  # plot measured data
    fig.axes[0].plot(____, ____, color='red')  # over-plot modeled data
    plt.show()
    return fig

# Select new model parameters a0, a1, and generate modeled `ym` from them.
a0 = ____
a1 = ____
ym = model(xd, a0, a1)

# Plot the resulting model to see whether it fits the data
fig = plot_data_with_model(xd, yd, ____)
コードを編集して実行