Fenstergröße abstimmen
du möchtest selbst überprüfen, dass die optimale Fenstergröße für den Arrhythmie-Datensatz 50 ist. Du hast den Datensatz als pandas-DataFrame namens arrh und willst einen Teil der Daten bis zum Zeitpunkt t_now verwenden. Deine Testdaten stehen dir als X_test, y_test zur Verfügung. Du probierst mehrere Fenstergrößen von 10 bis 100 aus, passt für jedes Fenster einen Naive-Bayes-Klassifikator an, bewertest dessen F1-Score auf den Testdaten und wählst anschließend die Fenstergröße mit der besten Leistung. Außerdem steht dir numpy als np zur Verfügung, und die Funktion f1_score() wurde bereits importiert. Schließlich wurde eine leere Liste namens accuracies initialisiert, in der du die Genauigkeiten der Fenster speichern kannst.
Diese Übung ist Teil des Kurses
Machine-Learning-Workflows in Python entwerfen
Anleitung zur Übung
- Definiere den Index eines gleitenden Fensters der Größe
w_size, das beit_nowendet, mithilfe der Methode.loc(). - Konstruiere
Xaus dem gleitenden Fenster, indem du die Spalteclassentfernst. Speichere diese Spalte alsy. - Fitte einen Naive-Bayes-Klassifikator auf
Xundyund verwende ihn, um die Labels der TestdatenX_testvorherzusagen. - Berechne den F1-Score dieser Vorhersagen für jede Fenstergröße und finde die Fenstergröße mit der besten Performance.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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)]