[PYTHON] Prédisez le deuxième tour de l'été 2016 avec scikit-learn

introduction

Ceci est la deuxième étude gratuite des vacances d'été pour toucher «scikit-learn». Le premier est ici. Comme d'habitude, le contenu est débutant, mais pardonnez-moi s'il vous plaît.

Cette fois, j'ai pensé à prédire la puissance de score du deuxième tour en apprenant le résultat du match du premier tour en fonction des résultats du tournoi local. C'est un apprentissage automatique recherché depuis longtemps (Sumimasen est plein de sentiments que je voulais essayer).

Données d'entraînement

Sur la base des Résultats époustouflants du tournoi local utilisé la dernière fois, la combinaison du premier match pour chaque école représentative Apprenez le score du premier match en combinant la performance du lanceur du lycée adverse avec des données d'apprentissage J'ai décidé de te laisser.

Les données d'apprentissage créées sont ici. Puisqu'il y a 49 écoles, Daisuke Morioka apparaîtra deux fois comme école partenaire pour le premier match.

Apprentissage et prédiction

Comme mentionné ci-dessus, sur la base des données du tournoi local, tous les résultats au bâton et les résultats du lanceur de l'adversaire sont appris en tant que variables explicatives. La variable objective est le nombre de points marqués lors du premier match de Koshien.

L'algorithme d'apprentissage est la «régression linéaire». Comme d'habitude, je n'ai pas les connaissances pour en choisir un autre ...

Ensuite, comme données de prédiction pour vérifier le résultat d'apprentissage, examinez la combinaison du deuxième tour et aimez les données d'entraînement ici -jeu-2016.csv).

#coding:utf-8
import pandas as pd
import numpy as np
from sklearn import linear_model

#Apprenez les résultats du premier match
df = pd.read_csv('round1-result-2016.csv')
X = df.drop(['Préfecture','PréfectureNo','nom de l'école','École de combat','But'], axis=1)
Y = df['But'].as_matrix()

clf = linear_model.LinearRegression()
clf.fit(X, Y)

#Prédiction du deuxième tour
df_round2 = pd.read_csv('round2-game-2016.csv')
X_round2 = df_round2.drop(['Préfecture','PréfectureNo','nom de l'école','École de combat'], axis=1)
round2_pred=clf.predict(X_round2)

print(round2_pred)

résultat

Préfecture nom de l'école École de combat But
Iwate Avec Morioka Dai Soushi Gakuen 2.37607605
Nara Chiben Gakuen Naruto 3.62097786
Tokushima Naruto Chiben Gakuen 5.76513128
Yamanashi Yamanashi Gakuin Synthèse Inabe 3.88857396
Tripler Synthèse Inabe Yamanashi Gakuin 5.36922697
Ibaraki Joso Gakuin Chukyo 5.14173416
Gifu Chukyo Joso Gakuin 7.22823584
Aichi Toho Hachinohe Gakuin Kosei 8.83172441
Aomori Hachinohe Gakuin Kosei Toho 1.28556647
Kanagawa Yokohama Shoshosha 7.68159192
Osaka Shoshosha Yokohama 4.58766162
Wakayama Ichi Wakayama Nichinan Gakuen 2.27939976
Miyazaki Nichinan Gakuen Ichi Wakayama 4.78286132
Kagoshima Kanan Tokuei Hanasaki -1.30671611
Saitama Tokuei Hanasaki Kanan 1.90896096
Hiroshima Hiroshima Shinjo Toyama Daiichi 1.28968031
Toyama Toyama Daiichi Hiroshima Shinjo 2.03399291

Le 13 août, quand j'ai écrit ceci, Morioka Ofu était différent de ce à quoi je m'attendais, mais j'ai été un peu surpris que les résultats de Chiben et Naruto m'aient frappé. J'obtiens un résultat négatif, mais je pense que c'est parce que le tournoi local de l'autre école a 0 but et 0 taux de défense.

C'est juste un jeu numérique de type science des données. Veuillez ne pas vous méprendre car nous n'avons aucune intention de faire appel ou de critiquer la compétition ou les joueurs réels.

Recommended Posts

Prédisez le deuxième tour de l'été 2016 avec scikit-learn
La deuxième nuit de la boucle avec pour
Prédire le nombre de personnes infectées par COVID-19 avec Prophet
Prédire le sexe des utilisateurs de Twitter grâce à l'apprentissage automatique
Visualisez les résultats des arbres de décision réalisés avec Python scikit-learn
Recherche en grille d'hyper paramètres avec Scikit-learn
Alignez la taille de la barre de couleurs avec matplotlib
Affinons les hyper paramètres du modèle avec scikit-learn!
[Scikit-learn] J'ai joué avec la courbe ROC
[Python] Arrondissez avec juste l'opérateur
Regrouper les écoles représentatives à l'été 2016 avec scikit-learn
La troisième nuit de la boucle avec pour
J'ai essayé de prédire le comportement du nouveau virus corona avec le modèle SEIR.
Compter le nombre de caractères avec écho
Remarque: préparez l'environnement de CmdStanPy avec docker
Trouvez le différentiel du second ordre avec la différenciation automatique JAX
Mathématiques Todai 2016 résolues avec Python
[Note] Exportez le html du site avec python.
À propos de la vitesse de traitement de SVM (SVC) de scikit-learn
Augmentez la taille de la police du graphique avec matplotlib
Calculez le nombre total de combinaisons avec python
Vérifiez la date du devoir de drapeau avec Python
Éliminez les inconvénients du widget QDock avec PySide
Défiez la tour de Hanoi avec recurs + stack
Renommer la balise avec un espace de noms en lxml
Remplissez la largeur du bloc-notes Jupyter pour remplir le navigateur
Vider le contenu de la base de données redis avec lua
Découvrez le jour par date / heure
La base de la théorie des graphes avec l'animation matplotlib
Visualisez le comportement de l'algorithme de tri avec matplotlib
Convertir le code de caractère du fichier avec Python3
[Python] Déterminez le type d'iris avec SVM
Isomap avec Scikit-learn
Deuxième moitié de la première journée d'étude de Python Essayez d'utiliser l'API Twitter avec Bottle
DBSCAN avec scikit-learn
Clustering avec scikit-learn (2)
PCA avec Scikit-learn
kmeans ++ avec scikit-learn
[Français] scikit-learn 0.18 Guide de l'utilisateur 3.2. Réglage des hyper paramètres de l'estimateur
Extraire le tableau des fichiers image avec OneDrive et Python
Ajouter des attributs d'objets de classe avec une instruction for
Coordonnées les plus à droite de l'étiquette faite avec tkinter
L'histoire de l'arrêt du service de production avec la commande hostname
Apprenez Nim avec Python (dès le début de l'année).
Calculer la somme des valeurs uniques par tabulation croisée des pandas
Ajoutez des informations au bas de la figure avec Matplotlib
Calculez la valeur totale de plusieurs colonnes avec awk
L'histoire du partage de l'environnement pyenv avec plusieurs utilisateurs
Détruire l'expression intermédiaire de la méthode sweep avec Python
La décision de scikit-learn Comment visualiser un modèle en bois
Prenez des captures d'écran LCD avec Python-LEGO Mindstorms
Visualisez la gamme d'insertions internes et externes avec python
[Chapitre 6] Introduction à scicit-learn avec 100 coups de traitement du langage