3Module d’apprentissage

Cette page documente l’ensemble du processus d’apprentissage automatique de notre démo, où nous utiliserons notre ensemble de données et plus précisément nos étiquettes pour prédire la mortalité à un an.

La section Machine Learning de cette preuve de concept est structurée en deux options d'exécution.

Cette option applique le pipeline prédictif à l'ensemble de données réduit Learning_homr_any_visit_10pct.csv.

Elle assure la continuité de la preuve de concept en permettant une exécution bout en bout plus légère et entièrement intégrée au sein de MEDomics. Le modèle entraîné est ensuite enregistré et réutilisé dans les Évaluation et Application modules.

Cette option est conçue pour :

  • Maintenir la continuité du flux de travail au sein de la plate-forme

  • Réduire la charge informatique

  • Permettre une transition fluide vers l'évaluation et le déploiement

Cette configuration optionnelle exécute le même pipeline sur l'ensemble de données complet (homr_any_visit.csv), tout en adaptant des paramètres spécifiques pour tenir compte des contraintes de mémoire et d'évolutivité au sein de MEDomics.

Étant donné que le pipeline complet a déjà été détaillé dans l'Option 1, aucune modification structurelle n'est requise. En revanche, cette option implique :

  • Mettre à jour les nœuds Dataset pour utiliser l'ensemble de données complet plutôt que la version réduite.

  • Ajuster la configuration Train Model pour mieux gérer les contraintes d'évolutivité au sein de la plate-forme.

  • Génération de notebooks de code pour permettre l'entraînement du modèle en dehors de MEDomics en utilisant des paramètres qui correspondent davantage à la configuration de l'étude originale.

Cette option permet un alignement méthodologique plus approfondi avec l'étude originale tout en assurant la reproductibilité en dehors de l'environnement MEDomics.

Option 1 : Pipeline intégré à la plate-forme

Cette sous-section propose un tutoriel pratique pour créer la scène de machine learning nous permettant d'entraîner un modèle Random Forest en utilisant le Learning_homr_any_visit_10pct.csv jeu de données.

circle-info

Si c'est la première fois que vous utilisez le Module Learning, nous recommandons de consulter la documentation dédiée, qui fournit des explications détaillées sur la création de scènesarrow-up-right et l'architecture du modulearrow-up-right.

Nous commençons par créer une nouvelle scène.

Cliquez sur l'icône du Module Learning L'interface de création de scène apparaîtra, où vous pourrez nommer la scène homr_scene.

circle-exclamation

L'étape suivante consiste à accéder à la nouvelle scène que vous avez créée. Dans votre espace de travail, vous trouverez un dossier nommé homr_scene. Cliquez dessus et accédez au fichier homr_scene.medml fichier.

Ceci est un aperçu du pipeline que nous aurons à la fin de cette section. Dans les sections suivantes, chaque nœud sera décrit individuellement.

Aperçu de la scène

Suivez les étapes illustrées dans la figure pour créer une scène :

  1. Double-cliquez sur l'icône Module Learning .

  2. Cliquez sur Créer la scène.

  3. Entrez le nom de la page : homr_scene.

  4. Assurez-vous que le configuration Experimental Scene. bouton bascule est désactivé.

  5. Cliquez sur Créer pour générer la scène.

Créer la scène "homr_scene"

Après la création de la scène, elle apparaît dans le dossier EXPERIMENTS sous le nom homr_scene.

dossier homr_scene dans Experiments

À l'intérieur de ce dossier de scène, il y a 3 éléments :

  • models/ : Ce dossier contient tous les modèles entraînés générés lors de l'expérience. Chaque fois qu'un modèle est entraîné et enregistré, il sera stocké ici.

  • notebooks/ : Ce dossier contient les notebooks générés associés à la scène. Ces notebooks vous permettent de reproduire ou d'étendre l'expérience en dehors de MEDomics.

  • homr_scene.medml : Il s'agit du fichier principal de la scène où le pipeline est construit et configuré. Tous les nœuds, connexions et paramètres de l'expérience sont définis dans ce fichier.

Cliquez sur l'icône du homr_scene.medml fichier. Maintenant, nous pouvons commencer la configuration des nœuds. Les nœuds sont disponibles dans la partie gauche de l'écran, sous 3 sections : Initialisation, Entraînement et Analyse.

circle-info

Si vous ne voyez pas la liste des nœuds disponibles, cliquez sur le bouton de menu bleu situé en haut à gauche de la scène (l'icône avec trois lignes horizontales).

Ce bouton bascule le panneau des nœuds et vous permet d'afficher ou de masquer la liste des nœuds.

Configuration des nœuds

Nous présenterons les nœuds par section (Initialisation, Entraînement et Analyse).

Nœuds d'initialisation

circle-info

Vous pouvez en apprendre davantage sur les nœuds d'initialisation iciarrow-up-right.

  • Nœud Dataset: Ce nœud est utilisé deux fois dans cette expérience pour représenter les deux ensembles de prédicteurs définis dans l'étude POYM : AdmDemo et AdmDemoDx. Créez deux nœuds Dataset, définissez-les tous deux au format MEDomics Standard et nommez-les en conséquence, comme indiqué dans la figure ci-dessous. Chaque nœud correspond à un groupe distinct de prédicteurs et s'appuie sur les balises de colonnes créées précédemment.

Configuration des nœuds Dataset

Aller plus loin, sélectionnez le homr_any_visit.csv fichier pour chaque nœud Dataset, et pour chaque ID (vu ci-dessus), appliquez les balises correspondantes, et définissez la variable cible comme "oym". Cette étape de configuration est illustrée dans la deuxième image ci-dessous.

Configuration des nœuds Dataset
  • Nœud Split: Configurez la Outer Split pour utiliser la validation croisée comme méthode de séparation avec 5 folds. Cette séparation externe définit la boucle externe d'une configuration de validation croisée imbriquée en 5 folds ; les séparations internes seront spécifiées plus tard dans le configuration Train Model nœud. Sous Paramètres généraux, réglez le random_state à 101, comme utilisé dans l'étude POYM originale, pour garantir la reproductibilité.

Configuration du nœud Split
circle-info

Si vous n'êtes pas familier avec la méthode de validation croisée imbriquée en apprentissage automatique, vous pouvez consulter ce lienarrow-up-right pour plus d'informations.

  • Nœud Model: Sélectionnez Random Forest comme algorithme d'apprentissage automatique.

L'étude originale s'appuie sur SKRanger, une implémentation en C++ de l' Random Forest algorithme, tandis que notre Module Learning est basé sur PyCaret, qui s'appuie sur scikit-learn. Pour assurer la cohérence méthodologique, nous utilisons donc les hyperparamètres équivalents les plus proches disponibles dans PyCaret pour reproduire ceux utilisés dans SKRanger. Bien que des différences d'implémentation mineures subsistent, cette approche nous permet de rester aussi proches que possible de la configuration expérimentale originale.

Configuration initiale du modèle

La spécification de valeurs initiales pour les hyperparamètres dans le nœud Model n'est pas obligatoire.

Quel que soit les valeurs initiales définies (y compris les valeurs par défaut), le modèle sera finalement entraîné et optimisé en utilisant la grille d'hyperparamètres personnalisée définie dans le nœud Train Model.

Par conséquent, vous pouvez omettre une initialisation détaillée si vous le souhaitez. Cependant, il est essentiel de vous assurer que les hyperparamètres suivants sont sélectionnés dans le nœud Model, car seuls les hyperparamètres sélectionnés seront disponibles pour l'optimisation dans le nœud Train Model.

Hyperparamètres à sélectionner

Les hyperparamètres suivants doivent être sélectionnés pour garantir qu'ils soient optimisés :

  • n_estimators — Nombre d'arbres de décision dans la Random Forest.

  • min_samples_leaf — Nombre minimum d'échantillons d'entraînement requis dans chaque nœud terminal (équivalent à min_node_size dans SKRanger).

  • max_features — Nombre de caractéristiques sélectionnées aléatoirement à chaque séparation (équivalent à MTRY dans SKRanger).

  • class_weight — Stratégie de gestion du déséquilibre des classes (équivalent à weight dans SKRanger).

  • random_state — Graine de reproductibilité (équivalent à seed dans SKRanger).

circle-exclamation
Configuration des hyperparamètres du modèle

Nœuds d'entraînement

  • Train Model : Dans cette section, nous n'utilisons que le nœud Train Model. Il s'agit de la partie la plus lourde en configuration du tutoriel, donc assurez-vous de suivre chaque étape attentivement.

Assurez-vous d'activer le bouton bascule Tune Model comme montré dans la figure ci-dessous.

Configuration du nœud Train Model

Configuration de l'optimisation des hyperparamètres

Lors de l'activation du bouton bascule Tune Model bascule dans le configuration Train Model nœud, vous remarquerez que l'option "Utiliser l'espace de recherche d'hyperparamètres par défaut de PyCaret" est automatiquement activée.

Puisque nous définissons une grille de réglage personnalisée, l'espace de recherche par défaut de PyCaret n'est pas requis. Veillez à désactiver cette bascule.

Une fois désactivée, la section Grille de réglage personnalisée pour le modèle Random Forest devient disponible, vous permettant de configurer manuellement les hyperparamètres.

La figure ci-dessous illustre ces étapes.

Grille de réglage personnalisée pour notre modèle

Cliquez sur le bouton plus à côté de Random Forest. Chaque hyperparamètre sélectionné dans le nœud Model apparaîtra dans la grille, où vous pouvez spécifier soit :

  • Une plage (début, fin, pas), ou

  • Des valeurs discrètes.

Configuration de la grille personnalisée

Définissez les hyperparamètres comme suit :

1️. n_estimators

Nombre d'arbres dans la forêt.

  • Valeurs de la plage : {128, 256, 384, 512, 640, 768, 896, 1024}

  • Début : 128

  • Fin : 1024

  • Pas : 128

2️. min_samples_leaf

Nombre minimum d'échantillons requis dans un nœud feuille.

  • Valeurs de la plage : {10, 20, 30, 40, 50, 60, 70, 80}

  • Début : 10

  • Fin : 80

  • Pas : 10

3️. max_features

Nombre de caractéristiques considérées à chaque séparation.

  • Valeurs discrètes : 10, 15, 20

4️. class_weight

Stratégie de gestion du déséquilibre des classes.

  • Valeurs discrètes : None, balanced, balanced_subsample

circle-exclamation

Options Tune Model

Après avoir défini la grille d'hyperparamètres personnalisée, configurez les options de réglage comme suit :

1. fold

Définissez le fold paramètre sur 5.

Cela correspond au nombre de folds internes utilisés dans notre configuration de validation croisée imbriquée en 5 folds configuration.

2. search_library

Définissez le search_library paramètre sur "scikit-learn".

Dans l'étude originale, l'optimisation des hyperparamètres a été réalisée en utilisant Optuna avec 100 essais. Cependant, au sein de MEDomics, Optuna est actuellement pris en charge uniquement via une stratégie de recherche aléatoire.

Pour cette preuve de concept, nous utilisons plutôt Scikit-Learn, car il permet une recherche structurée et contrôlée par grille sur des plages d'hyperparamètres prédéfinies.

3. search_algorithm

Définissez le search_algorithm paramètre sur "grid".

Cela garantit que toutes les combinaisons contenues dans la grille d'hyperparamètres définie sont évaluées de manière systématique.

Options Tune Model

Nœuds d'analyse

  • Aucun changement requis pour le nœud Analyze.

Création du pipeline

circle-info

Si vous n'êtes pas familier avec les ports d'entrée/sortie (I/O) de chaque nœud, veuillez vous référer à la documentationarrow-up-right pour plus d'informations.

L'étape finale avant l'exécution de la scène consiste à connecter les nœuds pour former le pipeline.

  1. Connectez les nœuds Dataset au nœud Split .

  2. Connectez les Split nœud à la première entrée du configuration Train Model .

  3. Connectez les nœud Model à la deuxième entrée du configuration Train Model .

  4. Enfin, connectez le configuration Train Model nœud au nœud Analyze pour afficher les résultats.

Assurez-vous que toutes les connexions sont correctement établies avant de lancer la scène.

Exécutez la scène et analysez les résultats

circle-info

Un aperçu de chaque bouton du Module Learning, ainsi que de sa fonctionnalité correspondante, est disponible dans la documentation. Vous pouvez y accéder iciarrow-up-right.

Une fois la scène entièrement configurée, cliquez sur le bouton Run situé en haut à droite de l'interface, comme souligné dans la figure ci-dessous.

Exécuter la scène

Vous pouvez suivre la progression à l'aide de la barre de progression affichée en bas de l'interface.

Lorsque l'exécution est terminée, le bouton Mode Analyse devient actif. Cliquez dessus pour ouvrir le panneau d'analyse en bas de l'écran, où les résultats pour Pipeline 1 et Pipeline 2 seront affichés.

Comme montré dans la figure ci-dessous :

  • Pipeline 1 correspond au nœud AdmDemo dataset.

  • Pipeline 2 correspond au nœud AdmDemoDx dataset.

Sélectionnez les résultats de performance des modèles pour consulter et comparer leurs métriques d'évaluation.

Résultats du pipeline en mode Analyse

Voici quelques-uns des résultats obtenus à partir du pipeline AdmDemo :

Statistiques des métriques pour le modèle AdmDemo

Et, les résultats du pipeline AdmDemoDx :

Statistiques des métriques pour le modèle AdmDemoDx

Résultats

Les modèles reproduits montrent une légère baisse de performance (dans MEDomics) par rapport à l'étude POYM originale.

Pour le modèle AdmDemo, l'AUC est passée de 0,876 dans l'étude originale à 0,8565 lors de l'utilisation de l'ensemble de données complet avec un réglage d'hyperparamètres limité. Lors de l'application de la stratégie de réglage complète sur l'ensemble d'apprentissage du jeu de données réduit à 10 %, l'AUC a encore diminué à 0,8489.

Plusieurs facteurs expliquent ces différences :

  • Réduction de l'ensemble de données : L'entraînement sur l'ensemble d'apprentissage représentant 10 % des données réduit la capacité du modèle à généraliser, en particulier pour les interactions complexes entre les caractéristiques.

  • Configuration du poids des classes : Les différences dans les stratégies de pondération des classes influencent les frontières de décision et le compromis sensibilité-spécificité.

  • Contraintes d'évolutivité dans MEDomics : Les limites de mémoire et de calcul de la plate-forme ont nécessité des adaptations méthodologiques qui peuvent légèrement impacter les performances.

Dans l'ensemble, malgré ces contraintes, les modèles reproduits atteignent des niveaux de performance proches de l'étude originale, confirmant la validité de l'implémentation du pipeline.

Finaliser et enregistrer le modèle

Afin d'évaluer et de déployer notre modèle, cliquez sur le bouton Finaliser & Enregistrer le modèle visible dans la présentation du pipeline. Assurez-vous d'enregistrer le modèle AdmDemo (Pipeline 1). Vous pouvez lire ce documentationarrow-up-right pour plus d'informations sur la marche à suivre.

circle-exclamation

Option 2 : Reproduction sur l'ensemble de données complet (configuration étendue)

Cette configuration optionnelle exécute le même pipeline décrit dans Option 1, mais sur l'ensemble de données complet (homr_any_visit.csv). L'objectif est de se rapprocher des résultats de l'étude POYM originale tout en tenant compte des contraintes de mémoire et d'évolutivité au sein de MEDomics.

Il est fortement recommandé de créer une scène séparée pour cette configuration afin d'éviter d'écraser ou de modifier la configuration utilisée dans l'Option 1.

Vous pouvez nommer cette nouvelle scène : exp-with-all-data.medml.

triangle-exclamation

Aperçu du flux de travail

Pour cette option, vous devrez :

  • Réutiliser la même architecture de pipeline que dans l'Option 1.

  • Remplacer l'ensemble de données réduit (Learning_homr_any_visit_10pct.csv) par l'ensemble de données complet (homr_any_visit.csv) dans les nœuds Dataset.

  • Ajuster la configuration Train Model pour mieux gérer les contraintes d'évolutivité au sein de la plate-forme.

Aucune modification structurelle du pipeline n'est requise.

Configuration du nœud Dataset

Le nœud Dataset est utilisé deux fois pour représenter les deux ensembles de prédicteurs définis dans l'étude POYM :

  • AdmDemo

  • AdmDemoDx

Pour les deux nœuds Dataset :

  1. Sélectionnez homr_any_visit.csv.

  2. Conserver le format en tant que MEDomics Standard.

  3. Appliquez les balises de colonnes appropriées (adm, demo, dx) comme défini précédemment.

  4. Définissez la variable cible sur oym.

circle-exclamation

Adaptation de Train Model

En raison des contraintes d'évolutivité au sein de MEDomics, un réglage complet des hyperparamètres peut ne pas être réalisable lors de l'utilisation de l'ensemble de données complet.

Dans cette configuration :

  • La stratégie de réglage peut être simplifiée (par exemple, en réglant un sous-ensemble réduit d'hyperparamètres tels que max_features seulement). Pour ce faire, sélectionnez un seul hyperparamètre au lieu de trois dans la configuration du nœud Model.

  • Le reste du pipeline reste inchangé.

Ces ajustements permettent à l'expérience de s'exécuter dans les limites de calcul de la plate-forme tout en maintenant la cohérence méthodologique.

circle-info

En conséquence, les résultats présentés ci-dessous ont été obtenus en ne réglant qu'un seul hyperparamètre : max_features en utilisant les valeurs de la grille ci-dessus.

Exécutez la scène et analysez les résultats

Une fois la scène configurée, appuyez sur le bouton Run et suivez le processus d'exécution via la barre de progression en bas. Sélectionnez les résultats de performance des modèles :

Résultats AdmDemo et AdmDemoDx

Le modèle AdmDemo a atteint une AUC de 0.8565, comparé à 0.876 rapporté dans l'étude originale. De même, le modèle AdmDemoDx a atteint une AUC de 0.8908, comparé à 0.905 dans l'étude de référence.

Cet écart de performance peut s'expliquer principalement par deux facteurs :

  • Différences dans la class_weight configuration

  • Ne régler qu'un hyperparamètre (max_features) au lieu des quatre hyperparamètres optimisés dans l'étude originale

Puisque cette option utilise l'ensemble de données complet, les résultats sont supérieurs à ceux obtenus dans l'Option 1.

Le tableau comparatif ci-dessous présente une comparaison des AUC des différentes configurations évaluées dans la section Module Learning.

nœud Model
Étude originale
Ensemble de données complet – Réglage 1 HP
Jeu de données 10 % – Réglage complet

AdmDemo

0.876

0.8565

0.8489

AdmDemoDx

0.905

0.8908

0.875

Génération de notebook

Pour dépasser les limitations d'évolutivité de MEDomics, l'étape finale de l'Option 2 consiste à générer le notebook associé au pipeline entraîné. Cela permet d'exécuter la même expérience en externe avec une configuration qui correspond davantage à l'étude originale.

Pour générer le notebook, cliquez simplement sur le bouton Générer .

circle-check

Dans le notebook, nous reproduisons d'abord la configuration MEDomics de l'étape précédente, puis incorporons progressivement les éléments manquants de la configuration de l'étude originale :

  1. Recherche par grille (scikit-learn) : Régler tous les hyperparamètres définis par l'étude en utilisant la recherche par grille, qui évalue de manière exhaustive toutes les combinaisons prédéfinies.

  2. Optuna (100 essais) : Effectuer le réglage des hyperparamètres en utilisant Optuna avec 100 essais. Optuna est un cadre d'optimisation adaptatif (par ex., TPE) qui explore l'espace des hyperparamètres plus efficacement que la recherche par grille en priorisant les configurations prometteuses en fonction des essais précédents.

Le notebook est disponible à ce lien OneDrive. Vous pouvez le télécharger iciarrow-up-right.

Cela conclut notre section Module Learning. Passons au Module Évaluation pour tester notre modèle enregistré !

Mis à jour