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.
Ubuntu 16.04 + python 2.7.12 + TensorFlow 0.7.1
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.
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.
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
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.
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.
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.
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.
É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