[PYTHON] [Courses de chevaux] J'ai essayé de quantifier la force du cheval de course

Bonjour, c'est Aoki (@aoki_eng). Cette fois, j'ai essayé de quantifier la force des chevaux de course dans les courses de chevaux, je vais donc la résumer dans cet article.

Cliquez ici pour github (https://github.com/katsuomi/keiba-BTmodel)

introduction

J'adore les courses de chevaux. Chaque week-end, je regarde toutes les grandes courses appelées courses à prix lourds à la télévision, et je parie une petite somme d'argent.

Par conséquent, je regarde souvent les résultats des courses passées des chevaux en compétition, mais je sentais que je ne savais pas exactement quelle était la force du cheval. Par exemple image.png Quelle est la force de ce cheval? Il y a tellement de races qui sont en premier lieu, donc ça semble être assez fort!

Et ce cheval? image.png Il y a tellement de races qui sont en premier lieu, donc ça semble être assez fort!

Eh bien, je peux dire intuitivement si c'est un cheval fort ou un cheval faible, Je ne sais pas à quel point c'est fort.

Je veux exprimer la force du cheval concrètement! !! En raison de ma curiosité, j'ai décidé de le quantifier cette fois.

Utilisation du modèle Bradley-Terry

Quel est le modèle Bradley-Terry?

Il y a n éléments (équipes et individus) et une sorte de bataille doit être jouée. Le match est un match d'un élément à un élément, et le résultat n'est qu'une victoire ou une défaite contre un élément. Supposons que la "force" de chaque élément soit mesurée à partir des résultats de plusieurs batailles. Ici, en supposant que la probabilité que l'élément i gagne l'élément j est Pij, pour toutes les combinaisons, スクリーンショット 2020-05-12 17.54.11.png Introduisez πi. L'expression relationnelle de l'équation (1) est appelée le modèle de Bradley-Terry (BT). Dans le modèle BT, πi peut être considéré comme représentant la force de l'élément i. On dit que le modèle BT est capable de décider du résultat par une bataille avec un tiers, même s'il n'y a pas de confrontation directe. (Cité de ici)

Cet article n'entre pas dans les détails sur le modèle BT. Mettre tout simplement,

** C'est un modèle qui peut raisonnablement montrer la force de chaque élément contre des choses comme des batailles individuelles! ** **

(Je ne peux pas exprimer ce dans quoi je suis bon ou faible, comme Janken)

Un exemple courant ・ Montrons la force des équipes Seregi et Paregi! ・ Montrons la force de l'équipe de la J League! Il y a quelque chose comme.

Pensons maintenant aux courses de chevaux. Par exemple, si le résultat d'une course est le suivant スクリーンショット 2020-05-12 18.11.15.png En se concentrant sur le deuxième cheval, スクリーンショット 2020-05-12 18.08.41.png ・ J'ai perdu contre le premier cheval ・ Gagné contre les chevaux 3-18

On peut dire ça.

De cette façon, dans une course de chevaux "Un match cheval de course contre cheval de course est organisé" J'ai pensé à appliquer le modèle BT.

la mise en oeuvre

・ Depuis le site officiel de JRA, grattage et tabulation des résultats de la course de 2014 à 2018 ・ Appliquer le modèle BT au résultat

La méthode de mise en œuvre spécifique est publiée ici (https://github.com/katsuomi/keiba-BTmodel/blob/master/pointToHorseStrength.py)

résultat

スクリーンショット 2020-05-12 18.18.23.png

Le cheval de compétition le plus fort parmi les chevaux actifs est ** Almond Eye **!

en conclusion

Cette fois, j'ai essayé de montrer la force du cheval de course en utilisant le modèle BT. Après tout, le nombre de chevaux encore actifs et de chevaux actifs dans le passé est élevé et rien ne peut être obtenu en particulier. (Lol)

Oups Ce week-end, il y aura une course appelée Victoria Mile, où Almond Eye, le cheval actif le plus fort, courra. C'est une course difficile chaque année, mais ... !!!!

[référence] À propos du modèle Bradley-Terry https://www.gavo.t.u-tokyo.ac.jp/~mine/japanese/IT/2017/toukei171211.pdf Concernant les performances du cheval https://www.netkeiba.com/ Concernant les informations de courses passées http://www.jra.go.jp/

Recommended Posts

[Courses de chevaux] J'ai essayé de quantifier la force du cheval de course
J'ai essayé d'automatiser le dépôt de 100 yens des courses de chevaux Rakuten (python / sélénium)
J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
zoom J'ai essayé de quantifier le degré d'excitation de l'histoire lors de la conférence
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
J'ai essayé de visualiser les données de course du jeu de course (Assetto Corsa) avec Plotly
J'ai essayé de combattre le minimum local de la fonction Goldstein-Price
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
[Linux] J'ai essayé de résumer les commandes de confirmation des ressources
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai essayé de créer l'image de démarrage SD de LicheePi Nano
J'ai essayé d'agrandir la taille du volume logique avec LVM
J'ai essayé de résumer la méthode de mise en œuvre fréquemment utilisée de pytest-mock
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai essayé de visualiser la condition commune des téléspectateurs de la chaîne VTuber
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé de résumer la commande umask
J'ai essayé de reconnaître le mot de réveil
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de toucher l'API COTOHA
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
J'ai essayé de transcrire les actualités de l'exemple d'intégration commerciale sur Amazon Transcribe
J'ai essayé d'estimer la similitude de l'intention de la question en utilisant Doc2Vec de gensim
J'ai essayé d'améliorer la précision de mon propre réseau neuronal
J'ai essayé de résoudre 100 traitements linguistiques Knock version 2020 [Chapitre 3: Expressions régulières 25-29]
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
(Python) J'ai essayé d'analyser 1 million de mains ~ J'ai essayé d'estimer le nombre d'AA ~
J'ai essayé de résumer la manière logique de penser l'orientation objet.
J'ai essayé de trouver l'itinéraire optimal du pays des rêves par recuit (quantique)
J'ai essayé d'extraire et d'illustrer l'étape de l'histoire à l'aide de COTOHA
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
J'ai essayé d'analyser la négativité de Nono Morikubo. [Comparer avec Posipa]
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
J'ai essayé de visualiser le texte du roman "Weather Child" avec Word Cloud
[Linux] J'ai essayé de vérifier la méthode de confirmation sécurisée du FQDN (CentOS7)
J'ai essayé d'obtenir automatiquement le RSS de la chanson la plus populaire de l'iTunes Store
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
En utilisant COTOHA, j'ai essayé de suivre le cours émotionnel de la course aux meros.
J'ai essayé de vérifier le résultat du test A / B avec le test du chi carré
J'ai essayé de prédire le comportement du nouveau virus corona avec le modèle SEIR.