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
Instructions de l’exercice
- Créez un pipeline avec
SelectKBest()comme étapeftetRandomForestClassifier()comme étapeclf. - Créez une grille de paramètres pour ajuster
kdansSelectKBest()etmax_depthdansRandomForestClassifier(). - 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)