LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Definiere den Index eines gleitenden Fensters der Größe w_size, das bei t_now endet, mithilfe der Methode .loc().
  • Konstruiere X aus dem gleitenden Fenster, indem du die Spalte class entfernst. Speichere diese Spalte als y.
  • Fitte einen Naive-Bayes-Klassifikator auf X und y und verwende ihn, um die Labels der Testdaten X_test vorherzusagen.
  • 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)]
Code bearbeiten und ausführen