Wizualizacja podejścia Coarse to Fine
Wykonasz teraz pierwszą część wyszukiwania metodą Coarse to Fine. Polega ona na przeanalizowaniu wyników wstępnego losowego przeszukiwania przeprowadzonego w dużej przestrzeni hiperparametrów, a następnie zdecydowaniu, jaki byłby kolejny logiczny krok w celu zawężenia tego przeszukiwania.
Masz do dyspozycji:
combinations_list– lista możliwych kombinacji hiperparametrów użytych w losowym przeszukiwaniu.results_df– DataFrame zawierający każdą kombinację hiperparametrów oraz wynikową dokładność dla wszystkich 500 prób. Każdy hiperparametr to osobna kolumna, a jej nagłówek to nazwa hiperparametru.visualize_hyperparameter()– funkcja, która przyjmuje nazwę kolumny DataFrame (jako ciąg znaków) i generuje wykres punktowy porównujący wartości tej kolumny z wynikami dokładności. Przykładowe wywołanie:visualize_hyperparameter('accuracy')
Jeśli chcesz zobaczyć definicję funkcji visualize_hyperparameter(), uruchom poniższy kod:
import inspect
print(inspect.getsource(visualize_hyperparameter))
To ćwiczenie jest częścią kursu
Strojenie hiperparametrów w Pythonie
Instrukcje do ćwiczenia
- Wyświetl (za pomocą print) rozmiar listy
combinations_list, uzasadniając tym samym potrzebę rozpoczęcia od losowego przeszukiwania. - Posortuj
results_dfwedług wartości dokładności i wyświetl 10 najlepszych wierszy. Czy widać wyraźne wzorce? Pamiętaj o małej liczebności próby! - Wyświetl (za pomocą print), jakie hiperparametry zostały użyte w tym przeszukiwaniu. Są to nazwy kolumn w
results_df. - Wywołaj
visualize_hyperparameter()dla każdego hiperparametru po kolei (max_depth,min_samples_leaf,learn_rate). Czy zauważasz jakieś trendy?
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Confirm the size of the combinations_list
print(____(____))
# Sort the results_df by accuracy and print the top 10 rows
print(results_df.____(by=____, ascending=False).head(____))
# Confirm which hyperparameters were used in this search
print(results_df.____)
# Call visualize_hyperparameter() with each hyperparameter in turn
visualize_hyperparameter(____)
visualize_hyperparameter(____)
visualize_hyperparameter(____)