【プログラミング】株価の予測を機械学習で 中間報告2

2019年3月8日

スポンサードリンク

こんにちは。ふぁんたです。

 

前回の記事、ご覧になっていただけましたでしょうか。

そうです。株価予測のプロジェクト、「全自動で稼いでくれるましーん」、「ぜかましプロジェクト」についてです。

 

前回から大きな進展がありましたので、その結果の発表をしたいと思います。

なお、結果はこれを書いている時点で知らないので、書く側もワクワクしております。

前回の概要

銘柄コードがある全銘柄のデータから、自分でルールを決めて売り買いしたら、勝率73%を記録したけど、ルールが簡単すぎるし、めっちゃ敗北した銘柄もあるし、信頼できない73%だ、この確率を上回るルールを、機械学習の力で見つけてしまおう!機械学習がわからないなりに私はそう思った。

何をしたか

全銘柄からいろんな特徴量を抽出して、

株価データから、買うべきタイミング、売るべきタイミングを計算して、

いろんな手法(8種類)にそれらを食わせて、最適なタイミングを測る。

実験の説明

対象:証券コードが割り当てられている日本株ぜんぶ

データ量:2019年3月現在、アバウト700日分ぐらい(増えていく)

特徴量:いろいろ。コンストラクタ記述するのめっちゃくちゃ大変でした。

正解としたデータ:

A.最安値で買って、最高値で売る、完璧主義を突き通したデータ

B.最安値最高値取引はするけど、極小値・極大値でも売り買いを行う、取引回数を気にしないラフなデータ。

使った手法:

1.多クラス決定木

2.決定木回帰

3.多クラスロジスティック回帰

4.多クラス分類ニューラルネットワーク

それぞれに、ハイパーパラメータの調整をつけたものとつけてないものを用意し比較しました。

Azure、便利。

 

結果

A1~4,B1~4のそれぞれの結果を発表します。今から見ます。

A1(多クラス決定木、最安値最高値のみ)の正解率

絶対売るべきタイミング:17%

まあ売るべきタイミング:98%

見のタイミング    :91%

まあ買うべきタイミング:15%

絶対買うべきタイミング:20%

 

売るタイミングより、買うタイミングがわかるほうが大事なので、あんまり良い結果とはいえません。

 

A1H(多クラス決定木ハイパーパラメータ、最安値最高値のみ)の正解率

絶対売るべきタイミング:28%

まあ売るべきタイミング:96%

見のタイミング    :88%

まあ買うべきタイミング:22%

絶対買うべきタイミング:10%

 

売るタイミングより、買うタイミングがわかるほうが大事なので、あんまり良い結果とはいえません。

これぐらいの正答率出されると、めちゃくちゃ不安になりますね。

でも結果は出てるので、次行きましょう。

 

決定木回帰の正解率

表の見方がわかりませんでした。

 

A3(多クラスロジスティック回帰、最安値最高値のみ)

絶対売るべきタイミング:6%

まあ売るべきタイミング:99%

見のタイミング    :91%

まあ買うべきタイミング:4%

絶対買うべきタイミング:5%

 

ひどいものですね。買うべきタイミングを5%でしか当てられないのはもうなんかテロです。こんなのにお金を託したくはありませんね。

A3H(多クラスロジスティック回帰ハイパーパラメータ、最安値最高値のみ)

絶対売るべきタイミング:6%

まあ売るべきタイミング:99%

見のタイミング    :91%

まあ買うべきタイミング:3%

絶対買うべきタイミング:5%

 

「まあ買うべきタイミング」が減りました。なんにも信じられません。

 

A4(多クラス分類ニューラルネットワーク、最安値最高値のみ)

絶対売るべきタイミング:17%

まあ売るべきタイミング:97%

見のタイミング    :92%

まあ買うべきタイミング:9%

絶対買うべきタイミング:11%

 

売るべきタイミングより、買うべきタイミングのほうが重要です。

それなのに、9%11%とかいう体たらく。カスでございます。

 

A4H(多クラス分類ニューラルネットワークハイパーパラメータ、最安値最高値のみ)

絶対売るべきタイミング:17%

まあ売るべきタイミング:95%

見のタイミング    :92%

まあ買うべきタイミング:9%

絶対買うべきタイミング:10%

 

ハイパーパラメータを設定しました。そしたら、正答率が下がりました。

もうダメです。やめましょう。こんなことを続けていても、発明などできません。

 

B1(多クラス決定木、極大極小も)

絶対売るべきタイミング:100%

まあ売るべきタイミング:76%

見のタイミング    :85%

まあ買うべきタイミング:16%

絶対買うべきタイミング:93%

 

大変なことになりました。

僕はとんでもないものを作り出してしまったかもしれません(テノヒラクルー

売るべきタイミングが100%、買うべきタイミングが93%の精度でわかってしまいました。

まあ売るべき、まあ買うべきのサインを無視し、「絶対」のタイミングで売り買いを行えば、93%の確率で勝つことができる、ということです。(1.00 * 0.93)

 

大丈夫?俺、命狙われたりしません?

 

B1H(多クラス決定木ハイパーパラメータ、極大極小も)

絶対売るべきタイミング:100%

まあ売るべきタイミング:76%

見のタイミング    :85%

まあ買うべきタイミング:22%

絶対買うべきタイミング:91%

 

絶対買うべきタイミング、が少し減りましたが、ぜかましプロジェクトの目標であったところの73%はゆうに超える値が出ているので良いですね。

決定木回帰

これも、表の見方がわかりませんでした。

 

B3(多クラスロジスティック回帰、極大極小も)

絶対売るべきタイミング:100%

まあ売るべきタイミング:81%

見のタイミング    :74%

まあ買うべきタイミング:3%

絶対買うべきタイミング:93%

 

すごい。93%って安心感がありますね。

絶対売るべきタイミングが100%なのが気味が悪いですが、93%って書いてあるとなんだか安心できます。素晴らしい!

 

素晴らしい!って言ってみたかったのが叶いました。素晴らしい成果なので。素晴らしい。

 

B3H(多クラスロジスティック回帰ハイパーパラメータ、極大極小も)

絶対売るべきタイミング:100%

まあ売るべきタイミング:81%

見のタイミング    :74%

まあ買うべきタイミング:3%

絶対買うべきタイミング:93%

 

パラメーターをいじっても同じでした。

 

B4(多クラス分類ニューラルネットワーク、極大極小も)

絶対売るべきタイミング:100%

まあ売るべきタイミング:70%

見のタイミング    :85%

まあ買うべきタイミング:6%

絶対買うべきタイミング:92%

 

ニューラルネットワーク、深層学習、AIだとかディープラーニングだとか。

これがいわゆる流行りのやつですが、万能であるというわけではない、とわかります。92%。いえーい、っていうのが本当の気持です。

 

B4H(多クラス分類ニューラルネットワークハイパーパラメータ、極大極小も)

絶対売るべきタイミング:100%

まあ売るべきタイミング:68%

見のタイミング    :85%

まあ買うべきタイミング:11%

絶対買うべきタイミング:90%

 

これも90%なので最高の気持ちです。ニューラルネットワークなので学習に時間はかかるのが難点です。

 

喜び

やったー!

これからの話

もし、データが間違っていたら困るので、しっかり見直してあってることを確認したいと思います。

合ってたらpythonに移植するなどして、予測ができるようにして、取引を開始したいと思います。

 

謝罪

手違いで、予測すべきデータが学習の特徴量に混入したことが発覚しました。

申し訳ありません。

スポンサードリンク