Ajuster la taille de la fenêtre
Vous souhaitez vérifier par vous-même que la taille de fenêtre optimale pour le jeu de données d’arythmie est 50. On vous a fourni le jeu de données sous forme de data frame pandas nommé arrh, et vous voulez utiliser un sous-ensemble des données jusqu’au temps t_now. Vos données de test sont disponibles sous X_test, y_test. Vous allez essayer plusieurs tailles de fenêtre, de 10 à 100, ajuster un classifieur naïf de Bayes sur chaque fenêtre, évaluer son score F1 sur les données de test, puis retenir la taille de fenêtre la plus performante. Vous avez aussi numpy disponible sous np, et la fonction f1_score() a déjà été importée. Enfin, une liste vide appelée accuracies a été initialisée pour que vous y stockiez les précisions des fenêtres.
Cet exercice fait partie du cours
Concevoir des workflows de Machine Learning en Python
Instructions
- Définissez l’index d’une fenêtre glissante de taille
w_sizese terminant àt_nowà l’aide de la méthode.loc(). - Construisez
Xà partir de la fenêtre glissante en supprimant la colonneclass. Stockez cette dernière colonne dansy. - Entraînez un classifieur naïf de Bayes sur
Xety, puis utilisez-le pour prédire les étiquettes des données de testX_test. - Calculez le score F1 de ces prédictions pour chaque taille de fenêtre et trouvez la taille de fenêtre la plus performante.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Loop over window sizes
for w_size in wrange:
# Define sliding window
sliding = arrh.____[____:t_now]
# Extract X and y from the sliding window
X, y = sliding.____('class', ____), sliding[____]
# Fit the classifier and store the F1 score
preds = GaussianNB().fit(____, ____).____(X_test)
accuracies.append(____(____, ____))
# Estimate the best performing window size
optimal_window = ____[np.____(accuracies)]