Tout rassembler
Vous venez de rejoindre une start-up de détection d’arythmies et souhaitez entraîner un modèle sur le jeu de données d’arythmies arrh. Vous avez remarqué que les forêts aléatoires remportent souvent des compétitions Kaggle ; vous voulez donc les essayer avec une profondeur maximale de 2, 5 ou 10 via une recherche sur grille. Vous observez aussi que la dimension du jeu de données est assez élevée et souhaitez évaluer l’effet d’une méthode de sélection de variables.
Pour éviter tout surapprentissage par erreur, vous avez déjà séparé vos données. Vous utiliserez X_train et y_train pour la recherche sur grille, et X_test et y_test pour décider si la sélection de variables aide. Les quatre plis de données sont déjà chargés dans votre environnement. Vous avez également accès à GridSearchCV(), train_test_split(), SelectKBest(), chi2() et à RandomForestClassifier sous le nom rfc.
Cet exercice fait partie du cours
Concevoir des workflows de Machine Learning en Python
Instructions
- Utilisez une recherche sur grille pour tester une profondeur maximale de 2, 5 et 10 pour
RandomForestClassifieret enregistrez la meilleure configuration de paramètres. - Réentraîner ensuite l’estimateur en utilisant le meilleur nombre d’arbres déduit ci‑dessus.
- Appliquez le sélecteur de variables
SelectKBestavec la fonction de scorechi2et réentraînez le classifieur.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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(____)