Ajuster la taille de la fenêtre
Vous voulez vérifier par vous-même que la taille de fenêtre optimale pour l'ensemble de données sur l'arythmie est 50. On vous a fourni l'ensemble de données sous forme de trame de données pandas nommée arrh, et vous souhaitez 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 essaierez plusieurs tailles de fenêtre, de 10 à 100, ajusterez un classificateur de Bayes naïf à chaque fenêtre, évaluerez son F1 sur les données de test, puis choisirez 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 vous permettre d'y stocker les justesses des fenêtres.
Cette activité fait partie du cours
Concevoir des flux de travail Machine Learning en Python
Instructions de l’exercice
- 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 retirant la colonneclass. Stockez cette dernière colonne dansy. - Ajustez un classificateur de Bayes naïf 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 ce code d’exemple.
# 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)]