[PYTHON] [Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren

Hallo, das ist Aoki (@aoki_eng). Dieses Mal habe ich versucht, die Stärke von Rennpferden im Pferderennen zu quantifizieren, daher werde ich es in diesem Artikel zusammenfassen.

Klicken Sie hier für Github (https://github.com/katsuomi/keiba-BTmodel)

Einführung

Ich liebe Pferderennen. Jedes Wochenende schaue ich mir alle großen Rennen an, die als schwere Preisrennen bezeichnet werden, und ich setze einen kleinen Geldbetrag.

Daher schaue ich oft auf die vergangenen Rennergebnisse von Wettkampfpferden, aber ich hatte das Gefühl, nicht genau zu wissen, wie stark das Pferd war. Zum Beispiel image.png Wie stark ist dieses Pferd? Es gibt so viele Rennen, die an erster Stelle stehen, also scheint es ziemlich stark zu sein!

Wie wäre es mit diesem Pferd? image.png Es gibt so viele Rennen, die an erster Stelle stehen, also scheint es ziemlich stark zu sein!

Nun, ich kann intuitiv sagen, ob es ein starkes oder ein schwaches Pferd ist. Ich weiß nicht, wie stark es ist.

Ich möchte die Stärke des Pferdes konkret ausdrücken! !! Aufgrund meiner Neugier habe ich mich entschlossen, es diesmal zu quantifizieren.

Verwendung des Bradley-Terry-Modells

Was ist das Bradley-Terry-Modell?

Es gibt n Elemente (Teams und Einzelpersonen), und es soll eine Art Kampf gespielt werden. Das Match ist ein Match von einem Element zu einem Element und das Ergebnis ist nur ein Sieg oder eine Niederlage gegen ein Element. Nehmen wir an, dass die "Stärke" jedes Elements aus den Ergebnissen mehrerer Schlachten gemessen wird. Unter der Annahme, dass die Wahrscheinlichkeit, dass Element i Element j gewinnt, für alle Kombinationen Pij ist, スクリーンショット 2020-05-12 17.54.11.png Führe πi ein. Der relationale Ausdruck von Gleichung (1) wird als Bradley-Terry (BT) -Modell bezeichnet. Im BT-Modell kann man sich vorstellen, dass πi die Stärke des Elements i darstellt. Das BT-Modell soll in der Lage sein, das Ergebnis durch einen Kampf mit einem Dritten zu bestimmen, auch wenn keine direkte Konfrontation vorliegt. (Zitiert aus hier)

Dieser Artikel geht nicht detailliert auf das BT-Modell ein. Einfach ausgedrückt,

** Es ist ein Modell, das die Stärke jedes Elements gegen Dinge wie Einzelkämpfe vernünftigerweise zeigen kann! ** **.

(Ich kann nicht ausdrücken, was ich gut oder schwach kann, wie Janken)

Ein häufiges Beispiel ・ Lassen Sie uns die Stärke der Teams Seregi und Paregi zeigen! ・ Lassen Sie uns die Stärke des J League-Teams zeigen! Es gibt so etwas wie.

Denken wir jetzt über Pferderennen nach. Zum Beispiel, wenn das Ergebnis eines Rennens wie folgt ist スクリーンショット 2020-05-12 18.11.15.png Konzentration auf das zweite Pferd, スクリーンショット 2020-05-12 18.08.41.png ・ Ich habe gegen das erste Pferd verloren ・ Gewonnen gegen Pferde 3-18

Das kann man sagen.

Auf diese Weise bei einem Pferderennen "Es findet ein Wettkampf zwischen Rennpferd und Rennpferd statt" Ich dachte darüber nach, das BT-Modell anzuwenden.

Implementierung

・ Auf der offiziellen Website von JRA werden die Rennergebnisse von 2014 bis 2018 abgekratzt und tabellarisch dargestellt ・ Wenden Sie das BT-Modell auf das Ergebnis an

Die spezifische Implementierungsmethode finden Sie hier (https://github.com/katsuomi/keiba-BTmodel/blob/master/pointToHorseStrength.py).

Ergebnis

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

Das stärkste konkurrierende Pferd unter den aktiven Pferden ist ** Almond Eye **!

abschließend

Dieses Mal habe ich versucht, die Stärke des Rennpferdes mit dem BT-Modell zu zeigen. Immerhin ist die Anzahl der Pferde, die noch aktiv sind, und der Pferde, die in der Vergangenheit aktiv waren, hoch, und es gibt nichts, was insbesondere erhalten werden kann. (Lol)

Hoppla Dieses Wochenende wird es ein Rennen namens Victoria Mile geben, bei dem Almond Eye, das stärkste aktive Pferd, laufen wird. Es ist jedes Jahr ein hartes Rennen, aber ... !!!!

[Referenz] Informationen zum Bradley-Terry-Modell https://www.gavo.t.u-tokyo.ac.jp/~mine/japanese/IT/2017/toukei171211.pdf In Bezug auf die Leistung von Pferden https://www.netkeiba.com/ In Bezug auf vergangene Renninformationen http://www.jra.go.jp/

Recommended Posts

[Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren
Ich habe versucht, die 100-Yen-Lagerstätte von Rakuten-Pferderennen (Python / Selen) zu automatisieren.
Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
zoom Ich habe versucht, den Grad der Aufregung der Geschichte auf der Konferenz zu quantifizieren
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Ich habe versucht, die Laufdaten des Rennspiels (Assetto Corsa) mit Plotly zu visualisieren
Ich habe versucht, das lokale Minimum der Goldstein-Preis-Funktion zu bekämpfen
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich habe versucht, das SD-Boot-Image von LicheePi Nano zu erstellen
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Ich habe versucht, die häufig verwendete Implementierungsmethode von pytest-mock zusammenzufassen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, den allgemeinen Zustand der VTuber-Kanalbetrachter zu visualisieren
Ich habe den asynchronen Server von Django 3.0 ausprobiert
Ich habe versucht, den Befehl umask zusammenzufassen
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich habe versucht, die Beispielnachrichten zur Geschäftsintegration in Amazon Transcribe zu übertragen
Ich habe versucht, die Ähnlichkeit der Frageabsicht mit Doc2Vec von gensim abzuschätzen
Ich habe versucht, die Genauigkeit meines eigenen neuronalen Netzwerks zu verbessern
Ich habe versucht, die Version 2020 mit 100 Sprachverarbeitung zu lösen [Kapitel 3: Reguläre Ausdrücke 25-29]
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, die Bewegungen von Wiire-Playern automatisch mit Software zu extrahieren
(Python) Ich habe versucht, 1 Million Hände zu analysieren ~ Ich habe versucht, die Anzahl der AA ~ zu schätzen
Ich habe versucht, die logische Denkweise über Objektorientierung zusammenzufassen.
Ich habe versucht, die optimale Route des Traumlandes durch (Quanten-) Tempern zu finden
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Ich habe versucht, die Negativität von Nono Morikubo zu analysieren. [Vergleiche mit Posipa]
Ich habe versucht, die Standardrolle neuer Mitarbeiter mit Python zu optimieren
Ich habe versucht, den Text des Romans "Wetterkind" mit Word Cloud zu visualisieren
[Linux] Ich habe versucht, die sichere Bestätigungsmethode von FQDN (CentOS7) zu überprüfen.
Ich habe versucht, das RSS des Top-Songs des iTunes Store automatisch abzurufen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Ich habe die übliche Geschichte ausprobiert, Deep Learning zu verwenden, um den Nikkei-Durchschnitt vorherzusagen
Mit COTOHA habe ich versucht, den emotionalen Verlauf des Laufens von Meros zu verfolgen.
Ich habe versucht, das Ergebnis des A / B-Tests mit dem Chi-Quadrat-Test zu überprüfen
Ich habe versucht, das Verhalten des neuen Koronavirus mit dem SEIR-Modell vorherzusagen.