[PYTHON] Bootsrennen Vorhersage mit TensorFlow

Motivation

Bei einer Veranstaltung hatte ich die Gelegenheit, TensorFlow zu berühren, und zu diesem Zeitpunkt wurde ich gefragt, ob ich ein Bootsrennen durch maschinelles Lernen vorhersagen könne. Deshalb habe ich es versucht, weil es interessant schien.

Umgebung

Ubuntu 16.04 + python 2.7.12 + TensorFlow 0.7.1

1. Zustandseinstellung

Im Bootsrennen kämpfen 6 Boote um die Rangliste. Die Person, die das Bootsticket kauft, sagt die Reihenfolge der Ankunft am Ziel basierend auf der Kampfhistorie des Spielers voraus. Dieses Mal werden wir die Vorhersage von "Nirenmono" in Frage stellen, die den 1. und 2. Platz am Ziel einschließlich der Reihenfolge der Ankunft vorhersagt.

2. Erstellen Sie eine Datenbank für vergangene Rennen

Vergangene Rennergebnisse werden auf den folgenden Websites als Textdateien bereitgestellt. http://www1.mbrace.or.jp/od2/K/pindex.html Die Ergebnisse von 2014 bis heute (2016/11) wurden stapelweise erfasst und mit Python + SQLite3 in eine Datenbank umgewandelt.

3. Erstellen Sie eine Eingabefunktion

Ich habe den Funktionsbetrag berechnet, der beim Training eingegeben werden soll. Die verwendeten Merkmalsmengen sind wie folgt.

Ich habe das Netzwerk unter Bezugnahme auf den folgenden Artikel implementiert. [Maschinelles Lernen (TensorFlow) + Lotto 6] http://qiita.com/yai/items/a128727ffdd334a4bc57

4. Schulung

Das Training wurde von Januar 2014 bis März 2016 für 97200 Rennen durchgeführt und die Anzahl der Schritte betrug 300. Infolgedessen lag die Trefferquote in den Trainingsdaten bei etwa 20%. Immerhin scheint es schwierig, das Bootsrennen vorherzusagen.

5. Simulation

Wir haben das Rennen 6 Monate von Mai 2016 bis Oktober 2016 getestet. In jedem Rennen wird das mit dem höchsten Output-Label (= erwartetes Ergebnis) simuliert, als hätten Sie jeweils 100 Yen gekauft. Aufgrund der Bequemlichkeit des erstellten Programms werden Rennen mit 5 oder weniger Booten, die aufgrund von Fouls oder fallengelassenen Booten erzielt wurden, vom Testfall ausgeschlossen. Darüber hinaus erwarten wir keinen Rückgang der Gewinnchancen aufgrund des Kaufs von Bootstickets. Beachten Sie daher, dass die Ergebnisse wie die unten gezeigte Trefferquote möglicherweise geringfügig höher sind als die tatsächlichen Ergebnisse.

6. Simulation (1) Alle Rennvorhersagen

Ich werde es in allen erwarteten Rennen während des Zeitraums versuchen.

Zeitraum Erwartete Anzahl der Rennen Anzahl der Treffer Trefferquote Einnahmen und Ausgaben(Kreis)
2016/5 4178 856 0.204 -63,010
2016/6 3589 723 0.201 -54,460
2016/7 3940 752 0.190 -75,450
2016/8 4336 816 0.188 -61,120
2016/9 3598 672 0.186 -64,610
2016/10 3750 688 0.183 -74,940
Gesamt 23391 4507 -393,590

Es ist ein enttäuschendes Ergebnis. Da die Trefferquote niedrig ist und nur Rennen mit geringen Gewinnchancen getroffen werden, ist der Saldo deutlich negativ.

7. Simulation (2) Wählen Sie ein Rennen aus und sagen Sie es voraus

Versuchen Sie nur Rennen, bei denen das Ausgabeetikett einen bestimmten Schwellenwert überschreitet (diesmal 0,45). Ich habe das Gefühl, dass ich mich auf die Rennen konzentriere, bei denen ich zuversichtlich bin.

Zeitraum Erwartete Anzahl der Rennen Anzahl der Treffer Trefferquote Einnahmen und Ausgaben(Kreis)
2016/5 55 28 0.509 +190
2016/6 53 24 0.452 +1,050
2016/7 63 29 0.460 +790
2016/8 47 24 0.510 +530
2016/9 30 13 0.433 -170
2016/10 30 14 0.466 +450
Gesamt 278 132 +2,840

Die Trefferquote beträgt mehr als 40%, und der Saldo ist in 5 von 6 Monaten subtil, aber positiv. Immerhin scheinen nur Rennen mit geringen Gewinnchancen getroffen zu werden, aber es scheint, dass dies durch eine hohe Trefferquote abgedeckt ist. Wenn man bedenkt, dass die durchschnittliche Wiederherstellungsrate von Bootsrennen 75% beträgt, scheint dies ein vernünftiges Ergebnis zu sein.

Zusammenfassung

Da es sich bei Bootsrennen um ein Rennen von Person zu Person handelt, gibt es viele unregelmäßige Elemente, und es scheint schwierig zu sein, das Ergebnis der Zielreihenfolge selbst durch maschinelles Lernen vorherzusagen. Einer der Gründe ist, dass ich in erster Linie ein Amateur im maschinellen Lernen und im Bootsrennen bin. Es kann verwendet werden, um sogenannte "harte Rennen" zu extrahieren, bei denen es einen überwältigenden Unterschied in den Fähigkeiten zwischen Athleten aus einer großen Anzahl von Rennen gibt. Wie ich bereits erwähnt habe, wurde die Simulation, die ich dieses Mal durchgeführt habe, unter anderen als den tatsächlichen Bedingungen durchgeführt, und ich bin mir nicht sicher, ob sie im tatsächlichen Rennen funktionieren wird, daher bin ich mir nicht sicher.

Recommended Posts

Bootsrennen Vorhersage mit TensorFlow
Aktienkursprognose mit Tensorflow
Zundokokiyoshi mit TensorFlow
Brechen Sie Blöcke mit Tensorflow
Aktienprognose mit TensorFlow (LSTM) ~ Aktienprognose Teil 1 ~
Daten mit TensorFlow lesen
Versuchen Sie eine Regression mit TensorFlow
Aktienkursprognose mit TensorFlow (mehrschichtiges Perceptron: MLP) ~ Aktienprognose 2 ~
Übersetzen Erste Schritte mit TensorFlow
Versuchen Sie es mit TensorFlow
Verwenden Sie TensorFlow mit Intellij IDEA
Kratzwettervorhersage mit Python
Versuchen Sie TensorFlow MNIST mit RNN
Stellen Sie die Reproduzierbarkeit mit tf.keras in Tensorflow 2.3 sicher
TensorFlow 2.2 kann nicht mit Python 3.8 installiert werden!
MNIST (DCNN) mit Keras (TensorFlow-Backend)
Passen Sie Modell / Ebene / Metrik mit TensorFlow an
Inferenz- und Ergebnisanzeige mit Tensorflow + matplotlib
Klassifizieren Sie "Wein" mit TensorFlow MLP-Code
Vorsichtsmaßnahmen bei der Installation von Tensorflow mit Anaconda
Bitcoin-Preisprognose mit TensorFlow (LSTM)
[TensorFlow 2] Lernen Sie RNN mit CTC-Verlust
[TensorFlow] [Keras] Aufbau eines neuronalen Netzwerks mit Keras
Verwenden Sie Tensorflow 2.1.0 mit Anaconda unter Windows 10!
Versuchen Sie Daten parallel zu Distributed TensorFlow
Zura sagt mit TensorFlow die heutige Temperatur voraus
Intellisense funktioniert nicht mit Tensorflow2.0 + VScode
Erzielen Sie mit Tensorflow eine Pytorch-Reflexionspolsterung
Tweet die Wettervorhersage mit Bot
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Lernen Sie mit TensorFlow Y = 2X verteilte Daten
Setzen Sie TensorFlow mit pip3 in die P2-Instanz
Vergleichen Sie rohen TensorFlow mit tf.contrib.learn und Keras
Aktienkursprognose mit Deep Learning (TensorFlow)
Implementieren Sie DQN (vollständige Version) mit Tensorflow
Die Geschichte der numerischen Berechnung von Differentialgleichungen mit TensorFlow 2.0
Probieren Sie TensorFlows RNN mit einem Basismodell aus