Module d'apprentissage
C'est ici que la magie opère 🧙🪄
Si c'est la première fois que vous lisez la documentation du Module d'Apprentissage, nous vous suggérons de commencer par le Module d'apprentissage.
L'architecture du Module d'Apprentissage
Disponible à partir de la v1.6.0
Le Module d'Apprentissage a été repensé avec une architecture mise à jour qui respecte les pratiques de l'apprentissage automatique, introduisant une séparation externe des données d'entraînement/de test pour prendre en charge l'entraînement de modèles en plusieurs itérations. Cette approche améliorée fournit une estimation des performances plus fiable tout en surmontant spécifiquement les limitations de PyCaret en matière de séparation de données externes. Le schéma suivant présente la nouvelle architecture :

Renforcement de l'entraînement et de la validation externes
Le flux de travail mis à jour introduit un partitionnement flexible des jeux de données via plusieurs méthodes de validation (validation croisée, bootstrap, etc.), résolvant la limitation de PyCaret dans la gestion de la séparation des données externes. Pour plus de clarté :
Les séparations externes divisent l'ensemble d'apprentissage en données d'entraînement/de test
Les séparations internes partitionnent davantage les données d'entraînement pour l'optimisation des hyperparamètres
La figure ci-dessous illustre ce cadre de validation amélioré.

Qu'est-ce qui repose sur PyCaret, et qu'est-ce qui ne l'utilise pas ?
Se référer à cette section pour plus de détails sur le rôle de PyCaret dans le Module d'Apprentissage.
Le Module d'Apprentissage est construit sur le framework open-source de machine learning de PyCaret, amélioré par des composants codés sur mesure pour permettre de nouvelles fonctionnalités, telles que la séparation des données externes — une capacité non prise en charge dans PyCaret. La figure ci-dessous met en évidence quels éléments tirent parti des fonctionnalités standard de PyCaret versus nos extensions personnalisées, vous donnant une meilleure compréhension de l'architecture.

Un nouveau design est arrivé
Le Module d'Apprentissage présente une nouvelle interface repensée alignée avec la nouvelle architecture, qui offre aux utilisateurs une manière rationalisée de créer leurs scènes et expériences. L'interface mise à jour est organisée en trois encadrés :
Initialisation : Les utilisateurs commencent par sélectionner leurs ressources d'apprentissage automatique et configurer les paramètres clés de l'expérience, y compris la sélection du jeu de données, les étapes de prétraitement des données, les choix de modèles, et plus encore.
Entraînement : Cette section permet aux utilisateurs de définir et gérer le processus d'entraînement du modèle, englobant des aspects tels que l'optimisation des hyperparamètres, les stratégies d'optimisation, et des fonctionnalités supplémentaires.
Analyse : À l'étape finale, les utilisateurs peuvent visualiser et interpréter les performances de leur modèle à travers une variété de graphiques et de métriques de résultats.

Un nouveau système de code couleur
La conception intuitive basée sur des encadrés simplifie la création de pipelines en guidant visuellement les utilisateurs à travers chaque étape. Un système de code couleur fonctionne parallèlement aux encadrés pour prévenir les erreurs. Par exemple, comme illustré ci-dessous, si vous essayez par erreur de glisser un nœud Train Model dans l'encadré Initialisation, à la fois le nœud et l'encadré deviendront rouges, vous alertant immédiatement de l'incompatibilité. Chaque encadré n'accepte que des types de nœuds compatibles, assurant des connexions logiques et réduisant les erreurs de configuration.

En modes Résultats ou Analyse, un codage couleur différent est utilisé ; lisez-en davantage à ce sujet ici.
Une nouvelle scène pour expérimenter
Le module d'apprentissage inclut une nouvelle Scène Expérimentale, une scène minimaliste conçue pour tester des configurations d'apprentissage automatique (modèles, paramètres, etc.) avant de les finaliser dans la scène principale de production.
Comme montré dans la figure ci-dessous, le design minimaliste de la Scène Expérimentale concentre l'attention sur les éléments essentiels de l'apprentissage automatique, avec tous les types de nœuds requis disponibles. La scène sert de terrain d'essai où les utilisateurs peuvent affiner leurs pipelines avant de passer à la scène principale.

A Structure de pipeline redéfinie
Dans la conception précédente, un pipeline était défini comme toute séquence de nœuds connectés. L'architecture mise à jour définit désormais un pipeline comme une séquence complète de nœuds qui commence par un nœud initial et se termine à la Boîte d'Analyse. Ce changement crucial signifie que toute chaîne de nœuds déconnectée ou tout flux de travail incomplet ne sera pas reconnu comme un pipeline valide pour l'exécution ou l'analyse. En imposant cette connexion complète, la plateforme garantit que les utilisateurs respectent les bonnes pratiques de l'apprentissage automatique et que chaque pipeline sera analysé. La figure ci‑dessous illustre un exemple de pipelines valides et invalides selon cette nouvelle définition.

Vidéos de présentation
Comment créer une scène
Ces étapes sont résumées dans la figure ci‑dessous. Une fois votre scène créée, un dossier sera généré qui inclut les éléments suivants :
Votre scène (.medml fichier) :

Un dossier pour les modèles de votre scène :

Un dossier pour les notebooks de votre scène :


Aperçu du module
Double‑cliquez sur le .medml fichier pour ouvrir la scène.
Les sections suivantes fournissent un aperçu complet de la scène et de ses composants fondamentaux. Chaque élément numéroté dans la figure principale de la scène correspond à une explication détaillée dans les sous‑sections suivantes.
Scène principale

1. Répartition du dossier de la scène
Chaque dossier de scène est organisé comme suit :
2. Nœuds disponibles

Le Ajouter des options le bouton ouvre un panneau où vous pouvez sélectionner des options supplémentaires. Ces options sont récupérées depuis la documentation ReadTheDocs de PyCaret.
Les liens utilisés pour expliquer le spécifique à PyCaret fonctions se réfèrent au Section Classification de la PyCaret documentation. Cependant, ces fonctions sont également présentes dans d'autres types d'apprentissage automatique au sein de PyCaret. Par exemple, vous pouvez les trouver dans la documentation Régression de PyCaret également.
Tableau récapitulatif des nœuds disponibles :

Ceci agit comme le point de départ pour toutes les expériences et détermine les données que votre pipeline utilisera. Les options disponibles pour ce nœud correspondent aux PyCaret setup() fonction options qui ne sont pas directement liées au nettoyage des données.
-
Jeu de données

Ce nœud vous permet de nettoyer et d'améliorer la qualité de votre jeu de données. Les options disponibles pour ce nœud correspondent aux PyCaret setup() options de fonction qui sont directement liées au nettoyage des données.
Jeu de données
Jeu de données
Ce nœud codé sur mesure unique (distinct des fonctions standard de PyCaret) vous donne un contrôle précis sur la façon dont votre jeu de données est divisé pour l'entraînement et l'évaluation. Il sert de fondation pour une validation fiable des modèles en garantissant une séparation appropriée des données.
Jeu de données
Jeu de données

Ce nœud vous permet de sélectionner un algorithme d'apprentissage automatique depuis la bibliothèque de modèles de PyCaret et de définir ses paramètres associés. Il correspond au paramètre estimator de la PyCaret create_model() fonction.
-
Configuration_modèle

Ce nœud vous permet d'entraîner un modèle en utilisant l'algorithme ML sélectionné. Les options disponibles pour ce nœud correspondent aux PyCaret create_model() options de fonction (à l'exception du paramètre estimator , qui est défini via le nœud Modèle).
Configuration_modèle +
Jeu de données
Modèle

Ce nœud vous permet de combiner plusieurs modèles en utilisant différentes techniques. Il est basé sur PyCaretle blend_models() et stack_mdoels() fonctions.
Modèle
Modèle

Ce nœud vous permet d'entraîner et d'évaluer les performances de tous les estimateurs disponibles dans la PyCaret bibliothèque de modèles en utilisant la validation croisée. Les options disponibles pour ce nœud correspondent à la PyCaret compare_models() options de fonction.
Jeu de données
Modèle(s)

Ce nœud vous permet de charger un modèle depuis un fichier. Il prend en entrée un modèle parmi ceux que vous avez enregistrés dans votre scène, affichés dans un sélecteur déroulant. Les options disponibles pour ce nœud sont celles disponibles dans la PyCaret load_model() fonction, à l'exception du nom du modèle, qui est remplacé par le fichier sélectionné.
Jeu de données
Modèle

Cette boîte vous permet d'analyser un modèle. Elle rassemble les fonctions d'analyse et d'explicabilité des modèles de PyCaret. Pour l'instant, seule la plot_model() fonction est utilisée dans le module d'apprentissage.
-
Modèle
-
3. Mode d'analyse
Le bouton Mode d'analyse, appelé Voir les résultats dans les scènes expérimentales, est utilisé pour afficher les résultats de l'expérience. Il est désactivé tant que vous n'exécutez pas une expérience. Après une exécution réussie, un .medmlres fichier est créé dans le dossier de votre scène, contenant les résultats générés de l'expérience. Si vous quittez l'application, vos résultats générés seront toujours disponibles la prochaine fois que vous ouvrirez l'application.
Reportez-vous à la page d'analyse pour plus de détails.
4. Menu Utils
Ce menu contient différentes fonctionnalités qui peuvent être utilisées pour vous aider à construire votre scène.
Liste déroulante du type d'apprentissage automatique 
Cette liste déroulante vous permet de sélectionner le type d'apprentissage automatique que vous souhaitez pour votre expérience. Lors du changement de type, tous les paramètres sont réinitialisés.
Lecture
![]()
Ce bouton vous permet d'exécuter l'expérience. Vous pouvez trouver des informations supplémentaires sur l'exécution de l'expérience ici.
Corbeille
![]()
Ce bouton vous permet de supprimer tous les nœuds de la scène.
Enregistrer
![]()
Ce bouton vous permet d'enregistrer la scène.
Charger
![]()
Ce bouton vous permet de charger une scène à partir d'un fichier.
5. Minicarte
Cette minicarte vous permet de naviguer dans la scène et de visualiser les nœuds présents.
6. Outils de flux
Ce menu contient diverses fonctionnalités qui interagissent avec la section de flux.
Bouton Plus
![]()
Ce bouton vous permet de zoomer dans la section de flux.
Bouton Moins
![]()
Ce bouton vous permet de dézoomer la section de flux.
Bouton Carré
![]()
Ce bouton vous permet d'ajuster la section de flux à la vue.
Bouton Verrou
![]()
Ce bouton vous permet de verrouiller la section de flux. Lorsqu'elle est verrouillée, vous ne pouvez pas déplacer la section de flux.
Bouton Carte
![]()
Ce bouton vous permet d'afficher/masquer la minicarte.
7. Boîtes de scène
Dans la scène principale, ces boîtes font partie du nouveau design, aidant à guider l'utilisateur lors de la création de sa scène et réduisant les erreurs lors du glisser-déposer des nœuds. En savoir plus sur ces boîtes dans les sections suivantes de la documentation.
Comprendre le rôle de PyCaret au sein du module d'apprentissage
PyCaret implémente principalement des fonctions de la scikit-learn bibliothèque.
1. Initialisation
Au début d'un pipeline d'apprentissage automatique, vous initialisez vos données en utilisant PyCaretla fonction setup de, correspondant aux nœuds Dataset et Clean dans notre Module d'apprentissage. La fonction setup nécessite un jeu de données et le nom de la colonne cible. PyCaret puis initialise des éléments pour le pipeline.

1.1. Données de test
PyCaret divise votre jeu de données en deux parties : l'ensemble d'entraînement et l'ensemble de test (contrôlé par le test_data paramètre dans le PyCaret fonction setup). Les données d'entraînement sont utilisées pour entraîner et optimiser votre modèle d'apprentissage automatique, tandis que les données de test sont réservées à l'évaluation du modèle créé. La séparation est effectuée en utilisant la scikit-learn fonction train_test_split (des explications utiles sur cette fonction peuvent être trouvées ici).

*Dans la figure, « Ensemble de données complet » fait référence à notre ensemble d'apprentissage.
L'étape d'échantillonnage aléatoire est exécutée à l'aide d'une graine aléatoire, et chaque séparation est liée à une graine spécifique. Par défaut, PyCaret assigne aléatoirement une graine au début de chaque exécution du pipeline. Pour garantir la reproduction de la même expérience avec une séparation cohérente, vous pouvez définir ce paramètre dans PyCaret (en utilisant le paramètre session_id dans le nœud Dataset), comme démontré dans nos expériences dans la vidéo d'instruction. Cela garantit que vos données de test et d'entraînement resteront cohérentes entre toutes les exécutions.

Ici, vous avez également la possibilité de définir vous-même les données de test et de les fournir à PyCaret. Cependant, cette fonctionnalité n'est pas actuellement disponible dans notre application lors de l'utilisation du format MEDomicsLab Standard.
1.2. Folds
Ensuite PyCaret définira des folds sur les données d'entraînement à utiliser pour la partie Validation Croisée (qui sera exécutée en utilisant la boîte Train ou Compare Models). La définition des folds sera également effectuée à l'aide d'une graine aléatoire, que vous pouvez définir via le paramètre session_id paramètre de PyCaret. Par défaut, PyCaret utilise le StratifiedKFold méthode de scikit-learn pour définir les folds. La méthode stratifiée garantit que chaque classe de la cible est représentée de manière égale dans chaque fold.

2. Entraînement
Il y a deux fonctions liées à l'entraînement dans PyCaret: compare_models (correspondant à notre boîte Compare Models) et create_model (correspondant à notre nœud Train).
2.1. Compare Models
Le compare_models la fonction est utilisée pour entraîner tous les modèles disponibles de PyCaret sur les données initialisées par la fonction setup de PyCaret (nos nœuds Dataset et Clean). Le tableau résultant affiché vous montre la moyenne des résultats de la Validation Croisée de tous les folds pour chaque modèle. Par exemple, si nous avons cinq folds, pour chaque modèle, nous entraînons le modèle cinq fois, en utilisant un fold différent comme données de validation à chaque itération. Ensuite, nous appliquons le modèle entraîné au fold de validation et conservons les métriques résultantes pour calculer la moyenne avec les résultats de validation des quatre autres itérations (données violettes de la séparation dans l'image ci-dessous).

La sortie de la fonction compare_model est le meilleur modèle trouvé en utilisant une métrique spécifiée (Accuracy par défaut, AUC comme nous l'avons spécifié dans notre vidéo d'instruction). Si nous définissons le paramètre n_select (comme montré dans notre vidéo d'instruction), nous retournons le nombre spécifié de modèles en tête de la liste.
2.2. Create Model
Le create_model la fonction prend des données initialisées en entrée et un modèle (que vous pouvez définir via notre nœud Model). Elle fonctionne exactement de la même manière que la compare_models fonction, sauf que nous ne testons qu'un seul modèle, et le tableau des résultats montre les résultats de la Validation Croisée de chaque fold.
3. Analyse
Les analyses effectuées à l'aide de notre nœud Analyze affichent les métriques résultant de nos modèles entraînés sur les données de test définies lors de l'initialisation de l'expérience.
4. Finaliser
Le fonction finalize dans PyCaret (représentée par le nœud Finalize dans notre application) entraîne le modèle une dernière fois sur l'ensemble du jeu de données, qui inclut à la fois les données d'entraînement et les données de test, sans modifier ses paramètres.
Mis à jour
