1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶ線形モデリング入門

Connected

演習

Scipy での最適化

最小の RSS 値を求める解析的解を、numpy で実装することは可能です。しかし、より複雑なモデルでは解析式が求まらないため、別の方法に頼る必要があります。

この演習では、同じ最適化問題をより一般的な手法で解くために、scipy.optimize を使います。

その過程で、「最良解がどれくらい良いか」を教えてくれる追加の戻り値も確認します。ここでは比較しやすいように、前の演習と同じ観測データとパラメータを使って、新しい scipy のアプローチを試します。

指示

100 XP
  • 配列 x を受け取り a0 + a1*x を返す関数 model_func(x, a0, a1) を定義します。
  • scipy の関数 optimize.curve_fit() を使って、a0 と a1 の最適値を計算します。
  • param_opt をアンパックし、モデルパラメータを a0 = param_opt[0]、a1 = param_opt[1] として保存します。
  • 事前定義済みの関数 compute_rss_and_plot_fit を使って、解をテストし検証します。