Konfigurowanie parametrów GridSearch
Hiperparametr to parametr wewnątrz funkcji. Na przykład max_depth i min_samples_leaf są hiperparametrami funkcji DecisionTreeClassifier(). Strojenie hiperparametrów polega na testowaniu różnych ich wartości w celu znalezienia tych optymalnych – takich, które dają najlepsze predykcje zgodnie z przyjętymi celami. W bibliotece sklearn możesz użyć GridSearch do testowania różnych kombinacji hiperparametrów. Co więcej, funkcja GridSearchCV() pozwala jednocześnie testować różne kombinacje i przeprowadzać na nich kroswalidację!
W tym ćwiczeniu przygotujesz różne wartości, które chcesz przetestować dla max_depth i min_samples_leaf. Następnie umieścisz je w słowniku, ponieważ właśnie tego wymaga GridSearchCV():
- klucze słownika będą nazwami hiperparametrów,
- wartości słownika będą atrybutami (wartościami hiperparametrów), które chcesz przetestować.
Zamiast wpisywać wszystkie wartości ręcznie, skorzystasz z funkcji range(), która pozwala generować wartości przyrostowo. Na przykład range(1, 10, 2) wygeneruje listę wartości od 1 włącznie do 10 (wyłącznie), z krokiem 2. Wynik końcowy to [1, 3, 5, 7, 9].
To ćwiczenie jest częścią kursu
HR Analytics: Przewidywanie rotacji pracowników w Pythonie
Instrukcje do ćwiczenia
- Wzorując się na powyższym przykładzie, wygeneruj wartości maksymalnej głębokości od 5 do 20 z krokiem 1.
- Zrób to samo dla minimalnej liczebności próby – wartości od 50 do 450 z krokiem 50.
- Utwórz słownik, podając wartości do przetestowania dla
max_depthimin_samples_leaf, używając właśnie utworzonych zmiennych.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]
# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]
# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)