[PYTHON] Prévisions de courses de bateaux avec TensorFlow

Motivation

Lors d'un événement, j'ai eu l'occasion de toucher TensorFlow, et à ce moment-là on m'a demandé si je pouvais prédire une course de bateaux par apprentissage automatique, alors j'ai essayé parce que cela semblait intéressant.

environnement

Ubuntu 16.04 + python 2.7.12 + TensorFlow 0.7.1

1. Réglage des conditions

Dans la course de bateaux, 6 bateaux s'affrontent pour le classement. La personne qui achète le billet de bateau prédit l'ordre d'arrivée au but en fonction de l'historique des combats du joueur. Cette fois, nous allons contester la prédiction de "Nirenmono", qui prédit la 1ère et la 2ème place au but en incluant l'ordre d'arrivée.

2. Créer une base de données de courses passées

Les résultats des courses passées sont fournis sous forme de fichiers texte sur les sites suivants. http://www1.mbrace.or.jp/od2/K/pindex.html Les résultats de 2014 à aujourd'hui (2016/11) ont été acquis par lots et transformés en base de données avec Python + SQLite3.

3. Création du montant de la fonction d'entrée

J'ai calculé la quantité de fonctionnalités à saisir lors de l'entraînement. Les quantités de caractéristiques utilisées sont les suivantes.

J'ai implémenté le réseau en me référant à l'article suivant. [Apprentissage automatique (TensorFlow) + Lotto 6] http://qiita.com/yai/items/a128727ffdd334a4bc57

4. Formation

La formation a été menée pour 97200 courses de janvier 2014 à mars 2016, et le nombre de pas était de 300. En conséquence, le taux de réussite dans les données d'entraînement était d'environ 20%. Après tout, il semble difficile de prévoir la course de bateaux.

5. Simulation

Nous avons testé la course pendant 6 mois de mai 2016 à octobre 2016. Dans chaque course, celle avec l'étiquette de sortie la plus élevée (= résultat attendu) est simulée en achetant 100 yens chacune. En raison de la commodité du programme créé, les courses avec 5 bateaux ou moins qui ont marqué en raison de fautes ou de bateaux abandonnés d'athlètes sont exclues des cas de test. De plus, nous ne prévoyons pas de diminution des cotes due à l'achat de billets de bateau. Par conséquent, veuillez noter que les résultats tels que le taux de réussite indiqué ci-dessous peuvent être légèrement supérieurs aux résultats réels.

6. Simulation (1) Toutes les prévisions de course

Je vais l'essayer dans toutes les courses attendues de la période.

période Nombre de courses attendu Nombre de courses à succès Taux de succès Recettes et dépenses(Cercle)
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
Total 23391 4507 -393,590

C'est un résultat décevant. Étant donné que le taux de réussite est faible et que seules les courses à faible cote sont touchées, le solde est nettement négatif.

7. Simulation (2) Sélectionnez une course et prédisez

N'essayez que les courses où l'étiquette de sortie dépasse un certain seuil (0,45 cette fois). J'ai l'impression de me concentrer sur les courses pour lesquelles j'ai confiance.

période Nombre de courses attendu Nombre de courses à succès Taux de succès Recettes et dépenses(Cercle)
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
Total 278 132 +2,840

Le taux de réussite est supérieur à 40%, et l'équilibre est subtil mais positif en 5 mois sur 6 mois. Après tout, il semble que seules les courses à faible cote soient touchées, mais il semble que cela soit couvert par un taux de réussite élevé. Considérant que le taux de récupération moyen des courses de bateaux est de 75%, cela semble être un résultat raisonnable.

Résumé

Étant donné que la course de bateaux est une course de personne à personne, il existe de nombreux éléments irréguliers et il semble difficile de prédire le résultat de l'ordre d'arrivée lui-même par l'apprentissage automatique. L'une des raisons est que je suis un amateur d'apprentissage automatique et de course de bateaux. Il peut être utilisé pour extraire des «courses difficiles» où il existe une énorme différence de capacité entre les athlètes d'un grand nombre de courses. Comme je l'ai mentionné précédemment, la simulation que j'ai faite cette fois a été faite dans des conditions différentes des conditions réelles, et je ne suis pas sûr si cela fonctionnera dans la course réelle, donc je ne suis pas sûr.

Recommended Posts

Prévisions de courses de bateaux avec TensorFlow
Prévision du cours de l'action avec tensorflow
Zundokokiyoshi avec TensorFlow
Casser des blocs avec Tensorflow
Prévision de stock avec TensorFlow (LSTM) ~ Prévision de stock Partie 1 ~
Lecture de données avec TensorFlow
Essayez la régression avec TensorFlow
Prévision de stock avec TensorFlow (perceptron multicouche: MLP) ~ Prévision de stock 2 ~
Traduire Premiers pas avec TensorFlow
Essayez l'apprentissage en profondeur avec TensorFlow
Utiliser TensorFlow avec Intellij IDEA
Scraping prévisions météorologiques avec python
Essayez TensorFlow MNIST avec RNN
Assurer la reproductibilité avec tf.keras dans Tensorflow 2.3
TensorFlow 2.2 ne peut pas être installé avec Python 3.8!
MNIST (DCNN) avec Keras (backend TensorFlow)
Personnaliser le modèle / la couche / la métrique avec TensorFlow
Affichage des inférences et des résultats avec Tensorflow + matplotlib
Classifier "Wine" avec le code MLP TensorFlow
Précautions lors de l'installation de tensorflow avec anaconda
Prévisions de prix Bitcoin avec TensorFlow (LSTM)
[TensorFlow 2] Apprendre RNN avec perte CTC
[TensorFlow] [Keras] Construction d'un réseau neuronal avec Keras
Utilisez Tensorflow 2.1.0 avec Anaconda sur Windows 10!
Essayez les données en parallèle avec TensorFlow distribué
Zura prédisant la température d'aujourd'hui avec TensorFlow
Intellisense ne fonctionne pas avec tensorflow2.0 + VScode
Obtenez un rembourrage de réflexion Pytorch avec Tensorflow
Tweet la météo avec bot
J'ai essayé d'implémenter Autoencoder avec TensorFlow
Apprenez les données distribuées avec TensorFlow Y = 2X
Mettre TensorFlow dans une instance P2 avec pip3
Comparez le TensorFlow brut avec tf.contrib.learn et Keras
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow)
Implémenter DQN (version complète) avec Tensorflow
L'histoire du calcul numérique des équations différentielles avec TensorFlow 2.0
Essayez TensorFlow RNN avec un modèle de base