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.
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.
** "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.
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.
--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.
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.
from qore_sdk.client import WebQoreClient
client = WebQoreClient(username="", password="p@$$w0rd", endpoint="")
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)
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.
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