CommencezCommencez gratuitement

Tout rassembler

Vous avez deux préoccupations au sujet de votre pipeline à la jeune pousse spécialisée en détection d'arythmie :

  • L'application a été entraînée sur des patients de tous âges, mais elle est surtout utilisée par des adeptes de remise en forme qui sont généralement jeunes. Vous soupçonnez un décalage de domaine et souhaitez donc exclure tous les exemples de plus de 50 ans.
  • Le surapprentissage vous préoccupe toujours ; vous voulez donc vérifier si réduire la complexité du classificateur Random Forest et sélectionner certaines caractéristiques pourrait aider.

Vous allez créer un pipeline avec une étape de sélection de caractéristiques SelectKBest() et un RandomForestClassifier, qui ont déjà été importés. Vous avez aussi accès à GridSearchCV(), Pipeline, numpy sous np et pickle. Les données sont disponibles sous arrh.

Cette activité fait partie du cours

Concevoir des flux de travail Machine Learning en Python

Voir le cours

Instructions de l’exercice

  • Créez un pipeline avec SelectKBest() comme étape ft et RandomForestClassifier() comme étape clf.
  • Créez une grille de paramètres pour ajuster k dans SelectKBest() et max_depth dans RandomForestClassifier().
  • Utilisez GridSearchCV() pour optimiser votre pipeline selon cette grille et des données ne comprenant que les personnes de moins de 50 ans.
  • Enregistrez le pipeline optimisé dans un fichier pickle pour la production.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Create a pipeline 
pipe = Pipeline([
  ('ft', ____), ('clf', ____(random_state=2))])

# Create a parameter grid
grid = {'ft__k':[5, 10], '____':[10, 20]}

# Execute grid search CV on a dataset containing under 50s
grid_search = ____(pipe, param_grid=grid)
arrh = arrh.____[____(arrh['age'] < 50)]
____.____(arrh.drop('class', 1), arrh['class'])

# Push the fitted pipeline to production
with ____('pipe.pkl', ____) as file:
    pickle.dump(____, file)
Modifier et exécuter le code