独学でプログラミングとかやってみる 〜ITとかの勉強レポート〜

ボクが勉強したプログラミングやIT関連の情報を記事にしていきます。機械学習や深層学習なども取り扱います。

フルスクラッチで単回帰分析をやってみる

機械学習の理解を深める

Pythonにはsklearnという便利な機械学習ライブラリがあります。 ただ、内部の計算に触れることは大事だと思うのです。 というわけで今回は単回帰分析をsklearnを使わずに実装します。

計算の準備

計算式の確認をします。 単回帰なのでパラメータは一つです。 パラメータをaとすると、


a = \dfrac{\displaystyle{\sum_{n=1}^{N}}x_{n}y_{n}}
{\displaystyle{\sum_{n=1}^{N}}x_{n}^{2}}

上記のようになります。
簡単な計算式ですので、簡単に実装できます。例えば、pandasのデータフレームを使えば、 次のように実装できると思います。

xx = x * x
xy = x * y
a = xy.sum() / xx.sum()

簡単にパラメータが求められます。 データからの予測値は


result = ax

上記の式で求めることができます。 実際にデータを扱うときはすこしデータに手を加えて、 値から平均を引いた値を使って計算しやすくするなどの工夫をしたほうがいいと思います。