Accéder au contenu principal

Tutoriel PyCaret : guide du débutant pour automatiser les workflows de ML avec PyCaret

PyCaret est un outil complet d'apprentissage automatique et de gestion de modèles qui accélère fortement les cycles d'expérimentation et booste votre productivité.
Actualisé 19 sept. 2026  · 12 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Qu'est-ce que PyCaret

\n

Remarque : ce tutoriel a été créé en 2021 et PyCaret n'est plus activement maintenu ; certaines étapes peuvent ne pas fonctionner avec les versions actuelles de DataLab ou d'autres outils.

\n

PyCaret est une bibliothèque open source de machine learning low-code pour Python, conçue pour automatiser les workflows de ML. C'est un outil de bout en bout pour l'apprentissage automatique et la gestion des modèles qui accélère exponentiellement les cycles d'expérimentation et vous rend plus productif.

\n

Par rapport aux autres bibliothèques open source de machine learning, PyCaret est une alternative low-code capable de remplacer des centaines de lignes de code par seulement quelques lignes. Les expériences deviennent ainsi bien plus rapides et efficaces. PyCaret est essentiellement un wrapper Python autour de plusieurs bibliothèques et frameworks de ML comme scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray, et d'autres.

\n

La conception et la simplicité de PyCaret s'inspirent du rôle émergent des citizen data scientists, un terme introduit par Gartner. Il s'agit d'utilisateurs avancés capables de réaliser des analyses allant de simples à relativement sophistiquées, qui auparavant exigeaient une expertise technique plus pointue.

\n

PyCaret est simple et agréable à utiliser. Toutes les opérations exécutées dans PyCaret sont stockées séquentiellement dans un pipeline entièrement orchestré pour le déploiement. Qu'il s'agisse d'imputer des valeurs manquantes, de transformer des données catégorielles, de faire du feature engineering ou même du réglage d'hyperparamètres, PyCaret automatise tout. Pour en savoir plus sur PyCaret, regardez cette vidéo d'une minute.

\n

\n

Modules dans PyCaret

\n

L'API de PyCaret est organisée en modules. Chaque module prend en charge un type d'apprentissage supervisé (classification et régression) ou non supervisé (clustering, détection d'anomalies, nlp, extraction de règles d'association). Un nouveau module de prévision de séries temporelles est récemment sorti en bêta sous la forme d'un package pip séparé.

\n
Source de l'image : [Ali, Moez].
\n

Installer PyCaret

\n

L'installation de PyCaret via pip est simple et ne prend que quelques minutes. L'installation par défaut de PyCaret n'installe que les dépendances essentielles, telles qu'indiquées dans le fichier requirements.txt du dépôt.

\n

Remarque : ce tutoriel a été créé en 2021 et PyCaret n'est plus activement maintenu ; certaines étapes peuvent ne pas fonctionner avec les versions actuelles de DataLab ou d'autres outils.

\n
pip install pycaret\n
\n

Pour installer la version complète :

\n
pip install pycaret[full]\n
\n

Fonctionnalités

\n

Le principal atout de PyCaret, c'est sa simplicité. Comparé aux autres logiciels d'AutoML, PyCaret est très flexible, propose une API unifiée et ne nécessite pratiquement pas d'apprentissage.

\n

PyCaret regorge de fonctionnalités. Vous pouvez passer du prétraitement de vos données à l'entraînement de modèles, puis à leur déploiement dans le cloud en quelques lignes de code. Il propose de nombreuses transformations de prétraitement appliquées automatiquement lors de l'initialisation de l'expérience. Le zoo de modèles de PyCaret compte plus de 70 modèles non entraînés pour des tâches supervisées et non supervisées.

\n
\n

Vous pouvez également utiliser PyCaret sur GPU et accélérer votre workflow par 10. Pour entraîner des modèles sur GPU, il suffit de passer use_gpu = True dans la fonction setup. Aucun changement de code n'est requis.

\n

PyCaret est une solution « boîte de verre ». Elle offre de nombreuses possibilités d'interagir avec le modèle et d'analyser les performances et les résultats. Tous les graphiques standards, comme la matrice de confusion, l'AUC, les résidus et l'importance des variables, sont disponibles pour tous les modèles. Il intègre également la bibliothèque SHAP, utilisée pour expliquer la sortie de modèles d'apprentissage automatique complexes basés sur des arbres.

\n\n
(Exemple de beeswarm plot)
\n\n

PyCaret s'intègre également à MLflow pour ses fonctionnalités MLOps. Il journalise automatiquement les métriques, paramètres et artéfacts lorsque vous passez log_experiment = True dans la fonction setup.

\n\n
(Image par l'auteur)
\n

Prétraitement dans PyCaret

\n

Toutes les transformations de prétraitement sont appliquées via la fonction setup. PyCaret propose plus de 25 transformations différentes définies dans setup. Cliquez ici pour en savoir plus sur les capacités de prétraitement de PyCaret.

\n\n
(Image par l'auteur)
\n

Modules dans PyCaret

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ModuleTâche
pycaret.classificationSupervisé : classification binaire ou multi-classes
pycaret.regressionSupervisé : régression
pycaret.clusteringNon supervisé : clustering
pycaret.anomalyNon supervisé : détection d'anomalies
pycaret.nlpNon supervisé : traitement du langage naturel (modélisation de sujets)
pycaret.arulesNon supervisé : extraction de règles d'association
pycaret.datasetsJeux de données
\n
\n

Exemple : un cas d'usage ML de bout en bout

\n

Voici un workflow type de machine learning. La formulation correcte du problème de ML est la première étape de tout projet de ML et peut prendre de quelques jours à plusieurs semaines.

\n

L'approvisionnement des données et l'ETL (Extract-Transform-Load) varient en complexité selon la maturité technologique et la taille de l'organisation. Il est courant de voir une équipe d'ingénieurs data travailler ensemble à cette phase.

\n

La phase d'analyse exploratoire (EDA) consiste à explorer les données brutes pour évaluer leur qualité (valeurs manquantes, valeurs aberrantes, etc.), les corrélations entre variables et à tester des hypothèses métier.

\n

Pour la préparation des données, l'entraînement et la sélection des modèles, PyCaret fait tout le travail en coulisses. La préparation inclut l'imputation des valeurs manquantes, la mise à l'échelle (min‑max, z‑score, etc.), l'encodage catégoriel (one-hot encoding, encodage ordinal, etc.), le feature engineering (polynômes, interactions, ratios, etc.) et la sélection de variables.

\n

Après la préparation, la phase d'entraînement et de sélection consiste à ajuster plusieurs algorithmes et à évaluer leurs performances via une stratégie de test (le plus souvent la validation croisée).

\n

Enfin, le modèle retenu est déployé en tant que point de terminaison d'API pour l'inférence. Une fois déployé, le suivi de l'API et la surveillance des performances du modèle en production s'inscrivent dans la durée.

\n
(Image par l'auteur)
\n

Définition du problème

\n

Prédire le prix d'un diamant à partir d'attributs tels que la coupe, la couleur, la forme, etc.

\n

Approvisionnement des données

\n
# charger le jeu de données depuis pycaret\nfrom pycaret.datasets import get_data\ndata = get_data('diamond')\n
\n
\n

Analyse exploratoire des données (EDA)

\n

Faisons quelques visualisations rapides pour évaluer la relation entre les variables explicatives (poids, coupe, couleur, pureté, etc.) et la variable cible, le prix :

\n
# nuage de points carat_weight et Price\nimport plotly.express as px\nfig = px.scatter(x=data['Carat Weight'], y=data['Price'], facet_col = data['Cut'], opacity = 0.25, trendline='ols', trendline_color_override = 'red')\nfig.show()\n
\n
\n

Regardons l'histogramme de la variable cible Price.

\n

# tracer l'histogramme\nfig = px.histogram(data, x=[\"Price\"])\nfig.show()

\n
\n

On observe que la distribution de Price est asymétrique à droite ; vérifions rapidement si une transformation logarithmique peut modifier la forme de la distribution de la cible.

\n

# tracer l'histogramme\ndata['logged_Price'] = np.log(data['Price'])\nfig = px.histogram(data, x=[\"logged_Price\"])\nfig.show()

\n
\n

Nettoyage et préparation des données

\n

Toutes les expériences PyCaret doivent être initialisées avec la fonction setup. Elle prend en charge l'ensemble des tâches de préparation nécessaires avant l'entraînement. Au-delà des traitements par défaut, PyCaret offre un large éventail de fonctionnalités de prétraitement. Cliquez ici pour découvrir toutes les fonctionnalités de prétraitement de PyCaret.

\n
# initialiser setup\nfrom pycaret.regression import *\ns = setup(data, target = 'Price', transform_target = True, log_experiment = True, experiment_name = 'diamond')\n
\n
\n

Lorsque vous initialisez setup dans PyCaret, le jeu de données est profilé et les types sont inférés pour toutes les variables d'entrée. Si tout est correct, appuyez sur Entrée pour continuer. Un paramètre permet aussi d'outrepasser les types de données dans PyCaret. Et si vous utilisez PyCaret dans un script Python, vous pouvez désactiver cette confirmation en passant silent = True à setup.

\n
(Sortie de setup — tronquée pour l'affichage)
\n

Entraînement et sélection du modèle de ML

\n

Après setup, les données transformées sont prêtes pour l'entraînement. Lancez l'entraînement avec compare_models. Cette fonction entraîne tous les algorithmes disponibles dans le zoo de modèles et évalue plusieurs métriques via une validation croisée k-fold.

\n
# comparer tous les modèles\nbest = compare_models()\n
\n
(Sortie de compare_models)
\n\n

La sortie de compare_models présente les métriques moyennes validées en croix pour tous les modèles. Par défaut, le tri se fait par \u2018R2\u2019 (décroissant), mais vous pouvez le modifier via le paramètre sort de compare_models.

\n

Le meilleur modèle (ici, CatBoost Regressor) est renvoyé à la fin de compare_models. Seul le meilleur modèle est retourné par défaut, mais vous pouvez changer ce comportement avec n_select. Par exemple, n_select = 3 renverra la liste des 3 meilleurs modèles.

\n
# vérifier les paramètres finaux du meilleur modèle\nbest.get_params()\n
\n
\n

On peut également consulter les diagnostics et quelques graphiques d'analyse avec plot_model.

\n
# vérifier les résidus du modèle entraîné\nplot_model(best, plot = 'residuals_interactive')\n
\n
\n
plot_model(best, plot = \u2018feature\u2019)\n
\n
\n

La fonction evaluate_model offre un moyen pratique de parcourir tous les graphiques d'analyse disponibles dans Jupyter Notebook.

\n
evaluate_model(best)\n
\n
\n

Déploiement et supervision du modèle de ML

\n

Nous pouvons maintenant utiliser le modèle final pour générer des prédictions sur des données non vues avec la fonction predict_model :

\n
# copier les données et retirer la variable cible\ndata_unseen = data.copy()\ndata_unseen.drop(\u2018Price\u2019, axis = 1, inplace = True)\npredictions = predict_model(best, data = data_unseen)\n
\n
\n

Pour un usage ultérieur, vous pouvez enregistrer tout le pipeline avec save_model.

\n
save_model(best, \u2018my_best_pipeline\u2019)\n
\n
\n

Journalisation des expériences

\n

Rappelez-vous, nous avons passé log_experiment = True dans setup, avec experiment_name = 'diamond'. Voyons ce que PyCaret a fait en coulisses. Pour la démonstration, lançons le serveur MLflow :

\n
# dans le notebook\n!mlflow ui\n\n# depuis la ligne de commande\nmlflow ui\n
\n

Ouvrez ensuite votre navigateur et tapez \u00ab localhost:5000 \u00bb. Vous verrez une interface comme celle-ci :

\n
\n

Chaque ligne du tableau représente une exécution d'entraînement donnant lieu à un pipeline entraîné et à un ensemble de métadonnées : date et heure, métriques de performance, hyperparamètres du modèle, tags, etc. Cliquons sur l'un des modèles :

\n
\n

Prévision de séries temporelles avec PyCaret

\n

Le nouveau module time series de PyCaret est désormais disponible en bêta. Fidèle à la simplicité de PyCaret, il est cohérent avec l'API existante et très riche en fonctionnalités : tests statistiques, entraînement et sélection de modèles (30+ algorithmes), analyse de modèles, réglage automatique des hyperparamètres, journalisation des expériences, déploiement dans le cloud, et plus encore. Tout cela en quelques lignes de code, comme les autres modules PyCaret. Pour utiliser ce module en bêta, vous devez l'installer dans un environnement conda séparé afin d'éviter les conflits de dépendances.

\n
pip install pycaret-ts-alpha
\n

Les séries temporelles font partie des types de données les plus courants, et savoir les manipuler est une compétence essentielle si vous souhaitez prédire et analyser des tendances. Si vous souhaitez approfondir l'analyse et la prévision de séries temporelles en Python, DataCamp propose une excellente sélection de cours. Vous pouvez commencer par le parcours Time Series with Python ou choisir l'un de ces cours :

\n\n

Intégrations PyCaret

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DomaineIntégrations
Modèlesscikit-learn, XGBoost, LightGBM, CatBoost
Entraînement sur GPURAPIDS.AI
Calcul distribuéRAY
Optimisation d'hyperparamètrestune-sklearn, optuna
Visualisation et analyseplotly, yellowbrick, seaborn, matplotlib
NLPgensim, spacy, nltk
MLOpsMLflow
\n
\n

FAQ PyCaret

\n
    \n
  1. \n

    PyCaret est-il disponible uniquement en Python ? Oui, PyCaret n'est pour l'instant disponible qu'en Python.

    \n
  2. \n
  3. \n

    Quelle est la différence entre PyCaret et d'autres bibliothèques open source comme scikit-learn, XGBoost, LightGBM ? Par rapport à ces bibliothèques, PyCaret est une alternative low-code qui remplace des centaines de lignes de code par quelques lignes seulement. PyCaret est essentiellement un wrapper Python autour de bibliothèques et frameworks de ML tels que scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray, et d'autres.

    \n
  4. \n
  5. \n

    Quels cas d'usage sont pris en charge par PyCaret ? Depuis la version 2.3.4, PyCaret prend en charge la classification binaire/multi-classes, la régression, le clustering, la détection d'anomalies, le traitement du langage naturel (modélisation de sujets) et l'extraction de règles d'association. PyCaret a aussi récemment publié en bêta son nouveau module de séries temporelles sous forme d'un installateur pip séparé.

    \n
  6. \n
  7. \n

    Peut-on utiliser PyCaret sur GPU ? Oui, vous pouvez entraîner des modèles sur GPU avec PyCaret et accélérer votre flux de travail par 10. Pour cela, passez simplement use_gpu = True dans setup. Aucun changement d'API n'est requis ; toutefois, dans certains cas, des bibliothèques supplémentaires doivent être installées car elles ne le sont pas par défaut, même avec la version full.

    \n
  8. \n
  9. \n

    Peut-on régler les hyperparamètres d'un modèle dans PyCaret ? Oui, vous pouvez régler automatiquement les hyperparamètres de n'importe quel modèle dans PyCaret. Il s'intègre à sklearn, optuna, tune-sklearn et ray pour différents optimiseurs comme la recherche aléatoire sur grille ou la recherche bayésienne.

    \n
  10. \n
  11. \n

    PyCaret est-il gratuit ? PyCaret est entièrement gratuit, open source et distribué sous licence MIT.

    \n
  12. \n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Ressources PyCaret----
TutorielsNouveau sur PyCaret ? Découvrez les notebooks officiels !
📋 NotebooksExemples de notebooks créés par la communauté.
📙 BlogTutoriels et articles rédigés par les contributeurs.
📚 DocumentationLa référence détaillée de l'API PyCaret
📺 Tutoriels vidéoNos tutoriels vidéo issus de divers événements.
📢 DiscussionsDes questions ? Échangez avec la communauté et les contributeurs.
🛠️ <atarget=\"_blank\" href=\"https://github.com/pycaret/pycaret/blob/master/CHANGELOG.md\">ChangelogModifications et historique des versions.
🌳 Feuille de routeLe plan de développement logiciel et communautaire de PyCaret.
\n
Sujets
Python
Apprentissage automatique