始める無料で始める

RSS の極小値を可視化する

この演習では、モデルパラメータの値を変えたときに RSS がどのように変化するかを計算し、可視化します。まず切片は固定し、傾きだけを変えます。各傾きに対してモデル値を計算し、その結果としての RSS を求めます。RSS の配列が得られたら、コードで最小の RSS を特定し、その最小値を与えた傾きを求めます。

あらかじめ読み込まれているデータ配列 x_datay_data と、空のコンテナ rss_list を使って始めてください。

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

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

コースを見る

演習の手順

  • a1_array の各試行値 a1 について、model() でモデル値を予測し、続いて compute_rss()y_data, y_model を渡して計算した rss_valuerss_list に保存します。
  • rss_listnp.array() に変換し、np.min() を使って rss_array の最小値を求めます。
  • np.where() を使って対応する試行値を見つけ、結果を best_a1 に代入します。
  • plot_rss_vs_parameters() を使って、図と一致しているかを視覚的に確認します。

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

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

# Loop over all trial values in a1_array, computing rss for each
a1_array = np.linspace(15, 35, 101)
for a1_trial in a1_array:
    y_model = model(x_data, a0=150, a1=____)
    rss_value = compute_rss(y_data, ____)
    rss_list.append(____)

# Find the minimum RSS and the a1 value from whence it came
rss_array = np.array(____)
best_rss = np.min(____) 
best_a1 = a1_array[np.where(rss_array==____)]
print('The minimum RSS = {}, came from a1 = {}'.format(best_rss, best_a1))

# Plot your rss and a1 values to confirm answer
fig = plot_rss_vs_a1(a1_array, rss_array)
コードを編集して実行