最小2乗回帰では、モデルの予測値と正解値yの差が最小になるようなwの値の組を求めればよい。\$$これは$$X^TX$$に逆行列が存在するときにのみ存在する。実装とりあえずこれをscikit-learnで使えるかどうか確かめてみる。以下のようなモデルを学習できるかどうか確かめる。\$$ノイズ項を入れることで予測を若干難しくする。学習する元のデータを作成。noiseこれをグラフにプロットする。y)plt.xlabel('x')plt.ylabel('y')plt.grid()plt.show()これにフィッティングするような直線を学習させる。ここではscikit-learnのLinearRegressionを使用する。y)学習したパラメータを見てみる。[-3.36946468]ほどほどに学習していそう。(interceptがw_0、coefficientがw_1に該当)グラフを重ねてプロットしてみる。label='predict')plt.xlabel('x')plt.ylabel('y')plt.legend()plt.grid()plt.savefig('ols_predict.png')plt.show()一変量だとこんな感じ。多変量だと以下のようになる。\$$を学習させるとする。noiseこれを学習させる。[-2.94948391]]計算結果がほぼ同じになったことが分かる。まとめ今回は線形回帰モデルの中でも最も基礎的な最小二乗法について扱った。scikit-learnだと数式がよく分かってなくてもとりあえず計算できるのがありがたい。(このあたりはエクセルでも簡単にできるものではあるが)次は罰則項として設定したものに係数の大きさで制限をかけるタイプのモデル(LassoとRidge)について扱っていく。ubuntu著者プロフィール。