Ajustarea dimensiunii ferestrei
Vrei să verifici personal că dimensiunea optimă a ferestrei pentru setul de date privind aritmia este 50. Ți s-a pus la dispoziție setul de date sub forma unui DataFrame pandas numit arrh și vrei să folosești un subset al datelor până la momentul t_now. Datele de testare sunt disponibile ca X_test și y_test. Vei testa mai multe dimensiuni de fereastră, de la 10 la 100, vei antrena un clasificator Naïve Bayes pentru fiecare fereastră, vei evalua scorul F1 pe datele de testare și vei alege dimensiunea cu cea mai bună performanță. Ai la dispoziție și numpy importat ca np, iar funcția f1_score() a fost deja importată. În plus, o listă goală numită accuracies a fost inițializată pentru a stoca acuratețile fiecărei ferestre.
Acest exercițiu face parte din cursul
Proiectarea fluxurilor de lucru pentru Machine Learning în Python
Instrucțiuni pentru exercițiu
- Definește indexul unei ferestre glisante de dimensiune
w_sizecare se oprește lat_now, folosind metoda.loc(). - Construiește
Xdin fereastra glisantă prin eliminarea coloaneiclass. Stochează această coloană cay. - Antrenează un clasificator Naïve Bayes pe
Xșiy, apoi folosește-l pentru a prezice etichetele datelor de testareX_test. - Calculează scorul F1 al acestor predicții pentru fiecare dimensiune de fereastră și identifică dimensiunea cu cea mai bună performanță.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)]