ÎncepețiÎncepe gratuit

Configurarea parametrilor pentru GridSearch

Un hiperparametru este un parametru din interiorul unei funcții. De exemplu, max_depth sau min_samples_leaf sunt hiperparametri ai funcției DecisionTreeClassifier(). Ajustarea hiperparametrilor este procesul prin care testezi diferite valori pentru aceștia, cu scopul de a le găsi pe cele optime – adică cele care produc cele mai bune predicții în funcție de obiectivele tale. În sklearn, poți folosi GridSearch pentru a testa diferite combinații de hiperparametri. Mai mult, poți folosi GridSearchCV() pentru a testa combinații și a rula validarea încrucișată simultan, într-o singură funcție!

În acest exercițiu, vei pregăti valorile pe care dorești să le testezi pentru max_depth și min_samples_leaf. Apoi le vei introduce într-un dicționar, deoarece acesta este formatul cerut de GridSearchCV():

  • cheile dicționarului vor fi numele hiperparametrilor
  • valorile dicționarului vor fi atributele (valorile hiperparametrilor) pe care vrei să le testezi

În loc să introduci manual toate valorile, vei folosi funcția range(), care generează valori în mod incremental. De exemplu, range(1, 10, 2) va genera o listă cu valori de la 1 (inclus) la 10 (exclus), cu un increment de 2. Rezultatul final va fi [1, 3, 5, 7, 9].

Acest exercițiu face parte din cursul

HR Analytics: Predicția fluctuației angajaților în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Urmând formatul din exemplul de mai sus, generează valorile pentru adâncimea maximă, de la 5 la 20 cu increment de 1
  • Fă același lucru pentru dimensiunea minimă a eșantionului, cu valori de la 50 la 450 cu increment de 50
  • Creează dicționarul specificând valorile pentru max_depth și min_samples_leaf pe care vrei să le testezi, folosind variabilele pe care tocmai le-ai creat

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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=____)
Editează și rulează codul