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
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șimin_samples_leafpe 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=____)