[PYTHON] Avec l'apprentissage en profondeur, vous pouvez dépasser le taux de récupération de 100% dans les courses de chevaux

4370674310_b118d0f62a_c.jpg pohotos by Ronnie Macdonald

Cela fait un moment que l'on ne m'a pas dit que ** l'IA prive les humains de leur travail, mais maintenant on dit aussi que je suis entré dans une période de désillusion **. Grâce à cela, j'ai été balancé par un train bondé tous les jours sans me faire voler mon travail. L'arnaque du vol est également bonne.

Bien qu'il semble que le développement d'une telle IA prendra un peu plus de temps, il est devenu facile d'obtenir un environnement où vous pouvez apprendre. Si vous le touchez, vous avez l'impression que tout le monde est sur le point d'être désillusionné. Cela dit, j'ai décidé de parler du deep learning afin de connaître la puissance de ** AI. ** **

J'ai essayé différentes choses, mais ici je vais surtout vous dire que le résultat est ** "Même si vous étudiez à partir d'un état ignorant, vous pouvez en profiter beaucoup avec l'apprentissage en profondeur" **. Le programme n'est pas un modèle, donc je ne le publierai que pour ceux qui veulent le voir.

Découvrez comment l'apprentissage en profondeur est réalisé avec Kaggle

Tout d'abord, j'ai appris un peu plus sur les mathématiques qui sont à la base de l'apprentissage profond. Non ... c'est assez déchirant. La formule à côté de la formule. Vous pouvez écrire le code sans le savoir, mais ** Si vous connaissez la signification mathématique, ce sera plus facile à comprendre, donc je pense qu'il vaudrait la peine d'en apprendre uniquement le contour **.

Alors, après avoir étudié légèrement, j'ai décidé d'essayer le fameux thème de machine learning ** "Titanic Survivor Prediction" ** afin de confirmer la puissance du deep learning. Un gars qui prédit qui a survécu en fonction d'attributs tels que l'âge et le sexe de chaque passager.

L'environnement est Google Colaboratory, et TensorFlow, qui semble être le plus simple à mettre en œuvre, est utilisé. C'était facile à faire rien qu'en se référant au tutoriel de Google. Lorsque vous téléchargez le résultat de la prédiction, le score sera renvoyé.

titanic.jpg

** Taux de réponse correcte 76,5% **. Près de 80% des modèles conviennent aux débutants. L'ajustement des paramètres et des données le rendra encore plus élevé.

À l'origine, j'ai pensé à diverses choses telles que «Les femmes et les enfants n'ont-ils pas la priorité pour aider?» Et je l'ai analysé par essais et erreurs, mais ** tout a été fait par Deep Learning **. Certainement un apprentissage en profondeur, c'est assez incroyable.

Super mais pas intéressant

Alors que je voulais toucher davantage, j'ai ressenti un gros problème avec cette prédiction.

Inintéressant…. L'apprentissage profond ne l'est pas, mais ** le thème n'est pas intéressant. Prédire la vie et la mort des passagers des navires d'outre-mer qui ont coulé il y a plus de 100 ans n'est pas du tout intéressant! ** **

** "James ... je pensais que tu étais mort ... Tu vivais!" ** ou ** "Reina ... Pourquoi es-tu mort?!" ** Je ne peux m'empêcher de me sentir triste. N'est-ce pas? Personne ne sait. Tous sont morts. En premier lieu, Kaggle ne me dit pas la bonne réponse.

J'aimerais un thème plus excitant ... Donc, pour ce thème lié à l'argent que j'ai toujours voulu essayer.

Essayez de dépasser le taux de récupération de 100% dans les courses de chevaux en utilisant l'apprentissage profond

Les courses de chevaux semblent avoir un taux de déduction d'environ 20%, de sorte que le rendement moyen commence à 80%. Il devrait être relativement difficile de dépasser le taux de récupération de 100%. Mais il doit y avoir beaucoup de données passées et le deep learning le fera pour vous? Je vais l'essayer avec l'attente.

L'objectif est ** "Un ticket de pari double gagnant avec un taux de récupération supérieur à 100%" **.

En raison des caractéristiques des courses de chevaux, il peut être plus efficace de viser un billet de pari avec un dividende plus important qu'une double victoire, mais il semble que ce ne sera pas intéressant à moins qu'il ne s'agisse d'un billet de pari facile à gagner, alors je l'ai réduit au double des gains.

Données cibles

Pour l'apprentissage: 2010-2017 Pour vérification: 2018-2019 (jusqu'à début novembre)

Nous visons à dépasser 100% avec les données de vérification. Tout d'abord, j'ai gratté sur le net et préparé de telles données.

Classification article
Informations sur le cheval Numéro de cheval
Numéro de cadre
âge
sexe
Poids (courant)
Poids (différence avec l'exécution précédente)
Poids de charge
Informations sur la course le jour même Terrain de course
Nombre de chevaux en marche
Distance du parcours
Type de cours
Type de cours (da/Shiba/Obstacle)
Météo
État de Baba
Informations sur la course passée du cheval (× 5 courses) Chances
Populaire
Classement
Temps (secondes)
Différence
Jours écoulés depuis l'exécution précédente
Distance du parcours
Type de cours
Type de cours (da/Shiba/Obstacle)
Météo
État de Baba

Prédire les chevaux à la 3e place

En utilisant ces données comme entrée, le deep learning prédit ** "s'il se situe ou non à la 3e place" **. ** La valeur prédite est une valeur comprise entre 0 et 100 (pour appeler cela «l'indice de la troisième place») **. Plus cette valeur est élevée, plus il est facile de terminer à la 3e place.

En passant, c'est le seul code pour la partie création de modèle prédictif, qui est au cœur de l'apprentissage profond.

python


import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(300, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu, input_dim=len(train_df.columns)),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(300, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)
])

model.compile(
    loss='binary_crossentropy',
    optimizer=tf.keras.optimizers.Adam(),
    metrics=['accuracy'])

fit = model.fit(train_df,
    train_labels,
    validation_data=(valid_df, valid_labels),
    epochs=30,
    batch_size=32)

Essayez d'acheter dans toutes les courses

Avec le modèle que vous avez créé, essayez d'acheter un billet de pari ** avec l'indice d'arrivée le plus élevé ** 3 pour chaque course. C'est le résultat de la simulation dans toutes les courses après 2018.

article résultat
Nombre de courses cibles (*) 3639
Nombre d'enregistrements cibles 41871
Numéro d'achat 3639
Numéro de hit 1976
Taux de succès 54.3%
Taux de récupération 82.7%

C'est un succès décent, mais ** le taux de récupération n'augmente pas. ** En premier lieu, je suis curieux de connaître la relation entre l'indice de 3e place, le taux de réussite (le taux qui était en fait à la 3e place) et le taux de récupération.

Relation entre l'indice de 3e place et le taux de réussite / taux de récupération

La relation entre l'indice de 3e place et le taux de réussite était la suivante. スクリーンショット 2019-11-01 14.10.12.png

** Plus l'indice de 3e place est élevé, plus le taux de réussite est élevé **, il semble donc fonctionner comme un modèle pour atteindre la 3e place ou moins. Ensuite, ** Si vous n'achetez que des chevaux avec un indice élevé, le taux de récupération dépassera-t-il 100%? ** **

Ajoutons le taux de récupération moyen au graphique précédent. スクリーンショット 2019-11-01 14.05.30.png

Le taux de récupération est d'environ 80% à 90% quel que soit le taux de réussite. En d'autres termes, plus l'indice d'arrivée ** 3 est élevé (le cheval qui est susceptible de gagner), plus le rendement est faible. ** **

Ensuite, je pense que la relation entre cet indice et le taux de réussite est similaire à la ** relation entre les cotes et le taux de réussite ** (plus les chances sont faibles, plus le rendement est petit). Donc, pour le moment, si vous regardez la relation entre l'indice de 3e place et les cotes moyennes ... スクリーンショット 2019-11-01 18.58.38.png

Dans le graphique de proportion inverse. Après tout, les chevaux avec un indice de finition élevé ** 3 ont de faibles cotes. ** Même si vous prédisez sans regarder les probabilités, ça finira comme ça. C'est intéressant, mais cela semble être la difficulté des courses de chevaux.

Pour dépasser le taux de récupération de 100%

J'ai trouvé que l'indice de 3e place et les chances sont presque inversement proportionnels. Mais il s'agit de cotes moyennes. Si vous regardez chacun d'eux, il devrait y avoir ** "des chevaux avec des cotes élevées pour un indice de troisième place élevé" **. Afin d'augmenter le taux de récupération, il semble bon de profiter de cette ** distorsion des cotes **.

Cependant, si vous achetez tous les billets de paris avec un indice de 3e place de 70 ou plus et une cote de 100 ou plus, le résultat sera désastreux.

article résultat
Numéro d'achat 73
Numéro de hit 1
Taux de succès 1.37%
Taux de récupération 16.9%

Les chevaux avec des cotes très élevées semblent avoir un faible taux de réussite, même si l'indice est élevé. Il peut y avoir une bonne raison à la cote élevée. En revanche, si les chances sont trop faibles, le dividende sera naturellement faible et le taux de recouvrement n'augmentera pas. Si c'est le cas, ** le but est au milieu. ** ** sanpu.png

(Depuis lors, d'autres personnes ont indiqué la cible de prédiction, nous l'avons donc révisée pour en faire le résultat de l'élargissement de la cible.)

En 2018, j'ai réduit la simulation à une partie de la fourchette (environ 55-60) où l'indice de 3e place est de 60 ou plus et les chances ne sont pas trop élevées **, et le taux de récupération est de 213% ** Ça fait du bien.

article résultat
Numéro d'achat 44
Numéro de hit 10
Taux de succès 22.7%
Taux de récupération 213.6%

Cependant, c'est un bon point pour 2018, c'est donc naturel avec de bons résultats. Cependant, lorsque je l'ai simulé en 2019 avec la même méthode de prédiction, il a également montré un ** taux de récupération de 194% **. C'est le total pour 2 ans (environ 22 mois).

article résultat
Numéro d'achat 99
Numéro de hit 19
Taux de succès 19.2%
Taux de récupération 202.63%

Avec cela, j'ai dépassé avec succès mon taux de récupération cible ** de 100%. ** Au fait ** Après 2018, si vous achetez 100 yens à chaque fois selon cette prévision, le graphique du solde ** sera comme ça. Il augmente régulièrement sans une grosse baisse. tmp.jpg

La possibilité que les deux dernières années aient été bonnes n'est pas nulle, mais si elle est avancée jusqu'à présent, elle semble crédible dans une certaine mesure. Le nombre d'achats n'est pas important (environ 4 fois par mois), mais ** ne pas choisir un ennemi qui ne peut pas gagner ** peut être une condition préalable pour gagner.

(Bonus) Prédire les chevaux avec des dividendes élevés

Il est normal de terminer avec ceci, mais comme c'est un gros problème, j'essaierai la prédiction de la ** "valeur attendue du dividende" ** comme un modèle différent de la prédiction de la troisième place.

Je vais donner les données incluses dans l'entrée en tant que probabilités d'apprentissage en profondeur et représenter graphiquement le résultat prévu de la même manière qu'auparavant. ** Les chevaux susceptibles de gagner même avec des cotes élevées ** semblent avoir des attentes plus élevées. (L'axe horizontal du graphique est toujours en avant, mais il est omis) kitaichi_odds.png

C'est la relation entre la valeur attendue et le taux de récupération / taux de réussite. kitaichi_return.png

Dans la mesure où le taux de récupération augmente, ** il semble que si vous continuez à acheter des billets de paris avec des attentes élevées pour toujours, le taux de récupération augmentera **, mais c'est aussi ** le nombre est petit et instable dans environ 1 à 2 ans ** il semble que.

Si vous achetez tous les chevaux avec de bonnes performances ** valeur attendue de 390-450 ** sur le graphique, cela dépassera 100% pour le moment, mais cela semble être une augmentation locale, il semble donc qu'il n'y aura pas de stabilité continue.

article résultat
Numéro d'achat 275
Numéro de hit 37
Taux de succès 13.5%
Taux de récupération 131.1%

Le solde est également plus volatil que lorsqu'il était à la 3e place. Je vise des cotes plus élevées, donc le retour lorsque je l'atteins est important. shushi2.jpg

C'est tout ce que nous avons fait.

Cliquez ici pour le programme

Le programme (Python) de création et de vérification du modèle de prédiction de l'indice de 3e place est publié expérimentalement sur la page suivante moyennant des frais. Ce n'est pas assez beau pour être utilisé comme manuel, alors ne le regardez que si vous êtes curieux et avez du temps à perdre.

Si vous avez un apprentissage en profondeur, vous pouvez dépasser le taux de récupération de 100% dans les courses de chevaux (programme)

[Cliquez ici pour les discussions ultérieures] (https://note.mu/yossymura/n/na3d0a471193c)

Épilogue

Récemment, les paiements mobiles se sont enfin généralisés en raison du grand nombre de batailles de campagnes de paiement QR. Après avoir vu comment les retours et les coupons sont précipités pour populariser autre chose que le paiement, j'ai une fois de plus senti que c'est toujours «l'argent» qui fait bouger les gens **, puis l'étape suivante est liée à l'argent. Je pensais écrire un article, donc je suis heureux de l'écrire de cette façon.

L'entrée pour cette prévision n'inclut pas "nom du cheval" ou "nom du cavalier". En d'autres termes, si vous considérez ** le pedigree du cheval, l'historique des combats du cavalier, la compatibilité **, etc., vous pourrez faire des prédictions encore plus précises. De plus, ** en complétant les données manquantes ** et ** la normalisation des lots **, bien sûr, je pense que simplement ** l'ajustement des paramètres en tant qu'apprentissage en profondeur ** améliorera, et ** les billets de paris autres que les doubles gains * * Peut également être prévu. Bref, il y a encore de la place pour la croissance.

D'un autre côté, c'était pratique, mais la seule chose qui m'inquiétait était que prédire les courses de chevaux avec l'IA gâcherait le «plaisir de prédire avec mon propre esprit» **. Je pense que l'IA ne peut pas vous donner la joie de gagner lorsque le cheval que vous choisissez gagne avec votre propre intuition, votre attachement au cheval et d'autres sentiments qui débordent de vous.

Lorsque tout le monde utilise l'IA pour toutes les prédictions futures, les gens pourront-ils encore se rassembler à l'hippodrome, s'oublier et continuer à être enthousiastes? Combien de temps pourrez-vous voir ce grand nombre de billets de paris voler dans le ciel? Je veux en faire bon usage pour que non seulement mon travail mais aussi mon cœur ne soient pas fascinés par la vague imminente de l'IA.

Recommended Posts

Avec l'apprentissage en profondeur, vous pouvez dépasser le taux de récupération de 100% dans les courses de chevaux
[Vérification] Ce n'est pas parce qu'il existe un apprentissage en profondeur que le taux de récupération peut facilement dépasser 100% dans les courses de chevaux.
Prédiction des courses de chevaux: Si vous pensez que le taux de récupération a dépassé 100% en machine learning (LightGBM), c'est une histoire
Une histoire sur l'obtention d'un taux de récupération des courses de chevaux de plus de 100% grâce à l'apprentissage automatique
Une méthode concrète pour prédire les courses de chevaux et simuler le taux de récupération par apprentissage automatique
J'ai écrit un code qui dépasse le taux de récupération de 100% dans la prédiction des courses de chevaux en utilisant LightGBM (partie 2)
Essayez l'apprentissage en profondeur avec TensorFlow
Apprentissage profond du noyau avec Pyro
Essayez le Deep Learning avec FPGA
Générez des Pokémon avec Deep Learning
[Windows Edition] Keras Course, une bibliothèque où vous pouvez essayer le Deep Learning immédiatement - Partie 1
La gestion du tensorflow a soudainement cessé de fonctionner en utilisant le GPU dans l'apprentissage en profondeur
Essayez le Deep Learning avec les concombres FPGA-Select
Identification de la race de chat avec Deep Learning
Faites de l'art ASCII avec l'apprentissage en profondeur
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
Essayez de prédire les courses de chevaux avec Chainer
Vérifiez la forme de squat avec l'apprentissage en profondeur
Catégoriser les articles de presse grâce au Deep Learning
Prévisions des ventes de collations avec apprentissage en profondeur
Faites sourire les gens avec le Deep Learning
Python | Ce que vous pouvez faire avec Python
Mettez vos propres données d'image dans Deep Learning et jouez avec
Traitement de l'erreur Python "Erreur d'attribut: le module'scipy.misc 'n'a pas d'attribut" dimensionnement "" dans l'apprentissage en profondeur
Une excellente introduction au TensorFlow de Cousera pour vous familiariser avec le Deep Learning
[Windows Edition] Keras Course, une bibliothèque où vous pouvez essayer le Deep Learning immédiatement - Partie 2