IniziaInizia gratis

Ottimizzare la dimensione della finestra

Vuoi verificare di persona che la dimensione ottimale della finestra per l’insieme di dati di aritmia sia 50. Ti è stato fornito l’insieme di dati come data frame pandas chiamato arrh, e vuoi usare un sottoinsieme dei dati fino al tempo t_now. I tuoi dati di test sono disponibili come X_test, y_test. Proverai diverse dimensioni di finestra, da 10 a 100, adatterai (fit) un classificatore naive Bayes a ciascuna finestra, valuterai il suo F1 score sui dati di test e poi sceglierai la dimensione di finestra con le prestazioni migliori. Hai anche numpy disponibile come np, e la funzione f1_score() è già stata importata. Infine, è stata inizializzata per te una lista vuota chiamata accuracies per memorizzare le accuratezze delle finestre.

Questo esercizio fa parte del corso

Progettare workflow di Machine Learning in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci l’indice di una finestra mobile di dimensione w_size che si ferma a t_now usando il metodo .loc().
  • Costruisci X dalla finestra mobile rimuovendo la colonna class. Memorizza quest’ultima colonna come y.
  • Esegui il fit di un classificatore naive Bayes su X e y, e usalo per prevedere le etichette dei dati di test X_test.
  • Calcola l’F1 score di queste previsioni per ciascuna dimensione di finestra e trova la dimensione di finestra con le prestazioni migliori.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)]
Modifica ed esegui il codice