[PYTHON] Je veux prédire le succès des joueurs NBA utilisant le SDK Qore

Ceci est l'article du 15ème jour de Apprentissage automatique et technologies appliquées autres que l'apprentissage profond par QuantumCore Advent Calendar 2019.

Chose que tu veux faire

Prédisez le succès des joueurs de la NBA en utilisant des informations de séries chronologiques.

Cette fois, nous allons prédire les «points par entrée» de Donovan Mitchell, qui appartient à Utah Jazz.

Donovan Mitchell (Basketball Reference)

Au fait, je suis un débutant en basketball.

supposition

** "Les hauts et les bas de l'activité de la saison ne sont-ils pas les mêmes à chaque saison?" **


Par exemple, "je n'allais pas bien au début de la saison, mais je me suis remis sur les rails au milieu de la saison et j'ai atteint le sommet de mon activité en fin de saison."

C'est une hypothèse assez approximative, mais j'ai essayé de voir tout ce que je pouvais faire avec cela et le SDK Qore.

Données et prévisions

Les données

Gratter la Référence de basketball pour obtenir le score de la boîte du joueur à chaque match.

La référence Bakertball a des données de match d'environ 1954, et j'ai récupéré toutes les données pour le moment. Si vous êtes intéressé par le contenu, veuillez nous contacter.

Que prévoir

--Variable explicative: nombre de jours depuis l'ouverture --Variable objective: nombre de points par entrée (PTS / MP)

Les points marqués par participation de Donovan Mitchell jusqu'à la mi-novembre sont les suivants.

スクリーンショット 2019-12-16 0.03.53.png

Cette fois, nous utiliserons les données de la saison 18/19 pour nous entraîner et les valider d'ici le milieu de la saison 19/20 (bien que nous ne changerons pas de modèle). Après cela, nous prédirons le succès de Donovan dans le jeu réel.

code

Relier

from  qore_sdk.client import WebQoreClient
client = WebQoreClient(username="", password="p@$$w0rd", endpoint="")

Préparation des données

Supposons que Donovan.csv ait les résultats d'un lecteur gratté.

import pandas as pd
donovan = pd.read_csv('Donovan.csv', parse_dates=['date'], index_col='date')

(réapparition) </ b>

--Variable explicative: nombre de jours depuis l'ouverture --Variable objective: nombre de points par entrée (PTS / MP)


#La norme est le 1er octobre, avant le début de la saison.
#Le jour d'ouverture pourrait être meilleur

X = donovan[(datetime.datetime(year=2019, month=10, day=1)>donovan.index) & (donovan.index>datetime.datetime(year=2018, month=10, day=1))].index
X = X - datetime.datetime(year=2018, month=10, day=1)

y = donovan[donovan.index.year==2018]['PTS per mn']

Répartition des données

import sklearn.model_selection as model_selection
X_train, X_valid, y_train, y_valid = model_selection.train_test_split(
    X, y, shuffle=False, random_state=44
)

Apprentissage et prédiction

# Train
res = client.regression_train(X=X_train.values, Y=y_train.values)

#Prévoir
pred = client.regression_predict(X=X_valid.values)

Validation (confirmation du nom)

import sklearn.metrics as metrics
rmse = metrics.mean_squared_error(y_valid, pred["Y"])**.5
mae = metrics.mean_absolute_error(y_valid, pred["Y"])

print("RMSE=", rmse)
print("MAE=", mae)
print("RMSE/MAE=", rmse/mae)

résultat

Erreur HTTP: Erreur HTTP 500: ERREUR SERVEUR INTERNE se produit au moment de l'apprentissage. Nous mettrons à jour l'article dès qu'il sera résolu.

Défis attendus

  • L'hypothèse est trop simple
  • Peut-être que des facteurs autres que le temps devraient être pris en compte «En premier lieu, il est étrange que l'axe d'évaluation des performances soit" le nombre de points par participation ". ―― Premièrement, obtenons le résultat.

Utilisation du SDK Qore

Si vous apprenez et faites des prédictions en utilisant un ensemble de données différent, ce sera certainement plus facile et plus facile. J'ai davantage pensé à des outils comme Reservoir Computing qui pourraient facilement reproduire des calculs complexes avec des avantages.

En revanche, cela peut donner l'impression d'une boîte noire, comme Article d'opération du premier jour et [Documentation](https: //qcore-info.github. Vous devez comprendre les explications telles que io / advent-calendar-2019 / index.html # qore_sdk.client.WebQoreClient.classifier_train). En particulier, j'ai senti que ce serait bien si la documentation avait une page d'explication de fond / théorie comme dans l'article du premier jour.

Dans tous les cas, je voudrais rendre hommage à tous ceux de Quantum Core qui consacrent leur temps au développement de tels outils.

Recommended Posts

Je veux prédire le succès des joueurs NBA utilisant le SDK Qore
Je souhaite utiliser uniquement le traitement de normalisation SudachiPy
J'ai essayé de prédire la victoire ou la défaite de la Premier League en utilisant le SDK Qore
Je souhaite personnaliser l'apparence de zabbix
Je souhaite utiliser la fonction d'activation Mish
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Je veux grep le résultat de l'exécution de strace
Je veux bien comprendre les bases de Bokeh
Je veux utiliser le jeu de données R avec python
Je souhaite augmenter la sécurité de la connexion SSH
Je souhaite également utiliser les commandes Linux à l'invite de commande! Utilisez les commandes Linux à l'invite de commande au lieu de Git Bash
Je veux utiliser la dernière version de gcc même si je n'ai pas les privilèges sudo! !!
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
[Python] Je souhaite utiliser l'option -h avec argparse
Je veux déterminer l'authenticité d'un élément du tableau numpy
Je veux connaître la nature de Python et pip
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Je veux connaître la légende du monde des technologies informatiques
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
Je veux lire la version html de la version "OpenCV-Python Tutorials" OpenCV 3.1
Je veux sortir le début du mois prochain avec Python
Utilisez PyCaret pour prédire le prix des appartements d'occasion à Tokyo!
Comparaison des services informatiques GCP [Je souhaite l'utiliser sans serveur]
Je veux vérifier la position de mon visage avec OpenCV!
Utilisez le SDK Qore pour prédire les augmentations et les baisses de prix BTC
Je veux connaître la population de chaque pays du monde.
Je veux utiliser jar de python
Je veux utiliser Linux sur mac
Je souhaite utiliser la console IPython Qt
Je veux afficher la barre de progression
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
Je ne veux pas l'admettre ... Représentation dynamique du système de Neural Network
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
Je souhaite trier une liste dans l'ordre des autres listes
Je souhaite utiliser Django Debug Toolbar dans les applications Ajax
Je veux exprimer mes sentiments avec les paroles de Mr. Children
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
Je veux analyser les sentiments des gens qui veulent se rencontrer et trembler
Je souhaite laisser une commande arbitraire dans l'historique des commandes de Shell
Je souhaite arrêter la suppression automatique de la zone tmp dans RHEL7
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
J'ai essayé de prédire le comportement du nouveau virus corona avec le modèle SEIR.
Je veux faire revivre la légendaire combinaison Nintendo en utilisant pleinement l'IA et la technologie RH!
Je veux utiliser quatre règles compliquées dans l'instruction IF du modèle Django! → Utilisez un modèle personnalisé
Je veux obtenir le chemin du répertoire où le fichier en cours d'exécution est stocké.
Je souhaite visualiser l'état des transferts de la J League 2020, que dois-je faire?
Obtenez le résultat du GeoCoding inversé en japonais à l'aide du SDK Java de GoogleMapsAPI.
J'ai essayé de corriger la forme trapézoïdale de l'image
Je souhaite définir un cycle de vie dans la définition de tâche d'ECS
Je souhaite utiliser le répertoire temporaire avec Python2
Je veux ajouter du silence pendant 1 seconde au début d'un fichier wav
Je veux obtenir les données de League of Legends ③
J'ai essayé de prédire la présence ou l'absence de neige par apprentissage automatique.