Pune totul cap la cap
Tocmai ai intrat într-un startup de detectare a aritmiilor și vrei să antrenezi un model pe setul de date arrh. Ai observat că pădurile aleatoare câștigă destul de multe competiții Kaggle, așa că vrei să le testezi cu o adâncime maximă de 2, 5 sau 10, folosind căutarea pe grilă. De asemenea, observi că dimensionalitatea setului de date este destul de mare, prin urmare vrei să analizezi efectul unei metode de selecție a caracteristicilor.
Pentru a evita supraadaptarea, ți-ai împărțit deja datele în prealabil. Vei folosi X_train și y_train pentru căutarea pe grilă, și X_test și y_test pentru a decide dacă selecția caracteristicilor aduce beneficii. Toate cele patru seturi de date sunt preîncărcate în mediul tău. Ai acces și la GridSearchCV(), train_test_split(), SelectKBest(), chi2() și RandomForestClassifier sub numele rfc.
Acest exercițiu face parte din cursul
Proiectarea fluxurilor de lucru pentru Machine Learning în Python
Instrucțiuni pentru exercițiu
- Folosește căutarea pe grilă pentru a experimenta cu o adâncime maximă de 2, 5 și 10 pentru
RandomForestClassifierși stochează configurația cu cele mai bune rezultate. - Reantrenează acum estimatorul folosind numărul optim de estimatori dedus anterior.
- Aplică selectorul de caracteristici
SelectKBestcu funcția de scoringchi2și reantrenează clasificatorul.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Find the best value for max_depth among values 2, 5 and 10
grid_search = GridSearchCV(
____(random_state=1), param_grid=____)
best_value = grid_search.____(
____, ____).best_params_['max_depth']
# Using the best value from above, fit a random forest
clf = rfc(
random_state=1, ____=best_value).____(X_train, y_train)
# Apply SelectKBest with chi2 and pick top 100 features
vt = SelectKBest(____, k=____).____(X_train, y_train)
# Create a new dataset only containing the selected features
X_train_reduced = ____.transform(____)