前回に引き続きここでは最小二乗回帰を使ってデータセットの関係性を予測していきたいと思います。
【前回のまとめ】
一次関数と仮定しての回帰は正直かなり微妙な出来だったと思います(下図)。これで「予想できました!」と言われても・・・って感じですね。そこで今回は関数の次数を上げて、2~4次関数と仮定してデータセットを予想してみたいと思います。
【コード】
前回使用したnp.polyfit()を今回も使います。16行目以降にそれぞれ、2~4次関数と仮定して回帰(予想)をしてくれるように書いています。25行目以降はグラフに重ねて表示してくれるプログラムです。実行すると以下のようになります。
さて、だんだんデータセットに予想した線が近づいてきたのがお分かりいただけるかと思います。ところで今回は1次~4次まで、合計4本予想をしているはずのですが、今見えている線は3本しかありません。これはなぜでしょうか?
理由は、もともとのデータセット自体が3次関数なので、np.polyfit()で4次関数として予想しても4乗の項の係数(a*x^4のa)がゼロとして出力されています。なので4次関数の結果が3次関数の上に重なっており、全体として1本、線が少ないように見えているんですね。
前回の1次関数よりかは精度が上がったし、もともとのデータセットの関数を今回のプログラムでしっかり看破することができました。とはいえ今回はもともとのデータセット自体関数で作成していますし、実際の金融市場がn次関数であらわされているとはとても思えないですよね!
なぜAIとファイナンスを題材にするブログでこのあまり使えなさそうな手法をご紹介したかというと以下の2点があります。
金融市場を席巻しているアルゴリズミックトレーディング(人間の感情に左右されずに機械的に金融商品を売買する手法の総称)ではディープラーニングを多く取り入れています。このブログでも次回以降はディープラーニングについて取り扱っていきます。
下からコードはコピペして使ってください。