【プログラミング】株価の予測を機械学習で 中間報告2
スポンサードリンク
こんにちは。ふぁんたです。
前回の記事、ご覧になっていただけましたでしょうか。
そうです。株価予測のプロジェクト、「全自動で稼いでくれるましーん」、「ぜかましプロジェクト」についてです。
前回から大きな進展がありましたので、その結果の発表をしたいと思います。
なお、結果はこれを書いている時点で知らないので、書く側もワクワクしております。
Contents
- 前回の概要
- 何をしたか
- 実験の説明
- 結果
- A1(多クラス決定木、最安値最高値のみ)の正解率
- A1H(多クラス決定木ハイパーパラメータ、最安値最高値のみ)の正解率
- 決定木回帰の正解率
- A3(多クラスロジスティック回帰、最安値最高値のみ)
- A3H(多クラスロジスティック回帰ハイパーパラメータ、最安値最高値のみ)
- A4(多クラス分類ニューラルネットワーク、最安値最高値のみ)
- A4H(多クラス分類ニューラルネットワークハイパーパラメータ、最安値最高値のみ)
- B1(多クラス決定木、極大極小も)
- B1H(多クラス決定木ハイパーパラメータ、極大極小も)
- 決定木回帰
- B3(多クラスロジスティック回帰、極大極小も)
- B3H(多クラスロジスティック回帰ハイパーパラメータ、極大極小も)
- B4(多クラス分類ニューラルネットワーク、極大極小も)
- B4H(多クラス分類ニューラルネットワークハイパーパラメータ、極大極小も)
- 喜び
- これからの話
- 謝罪
前回の概要
銘柄コードがある全銘柄のデータから、自分でルールを決めて売り買いしたら、勝率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に移植するなどして、予測ができるようにして、取引を開始したいと思います。
謝罪
手違いで、予測すべきデータが学習の特徴量に混入したことが発覚しました。
申し訳ありません。
スポンサードリンク
ディスカッション
コメント一覧
まだ、コメントがありません