Dostrajanie rozmiaru okna
Chcesz samodzielnie sprawdzić, że optymalny rozmiar okna dla zbioru danych arytmii wynosi 50. Otrzymujesz ten zbiór danych jako ramkę danych pandas o nazwie arrh i chcesz użyć podzbioru danych do momentu czasowego t_now. Dane testowe są dostępne jako X_test i y_test. Przetestujesz różne rozmiary okien – od 10 do 100 – dopasowując do każdego z nich naiwny klasyfikator Bayesa, oceniając jego wynik F1 na danych testowych, a następnie wybierzesz najlepiej działający rozmiar okna. Masz też dostęp do numpy jako np, a funkcja f1_score() została już zaimportowana. Na koniec – pusta lista accuracies jest już zainicjowana, abyś mógł zapisywać w niej dokładności poszczególnych okien.
To ćwiczenie jest częścią kursu
Projektowanie przepływów pracy uczenia maszynowego w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj indeks przesuwanego okna o rozmiarze
w_sizekończącego się wt_now, używając metody.loc(). - Skonstruuj
Xz przesuwanego okna, usuwając kolumnęclass. Zachowaj tę ostatnią kolumnę jakoy. - Dopasuj naiwny klasyfikator Bayesa do
Xiy, a następnie użyj go do przewidzenia etykiet dla danych testowychX_test. - Oblicz wynik F1 tych predykcji dla każdego rozmiaru okna i znajdź najlepiej działający rozmiar okna.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)]