Module 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.
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ènes et l'architecture du module.
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.
Ne pas sélectionner la configuration Experimental Scene. Comme nous disposons déjà d'une stratégie de modélisation prédéfinie (Random Forest), il n'est pas nécessaire d'utiliser l'Experimental Scene, qui est conçue pour explorer et comparer automatiquement plusieurs modèles.
Vous pouvez en apprendre davantage sur la configuration de l'Experimental Scene ici.
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.

Suivez les étapes illustrées dans la figure pour créer une scène :
Double-cliquez sur l'icône Module Learning .
Cliquez sur Créer la scène.
Entrez le nom de la page :
homr_scene.Assurez-vous que le configuration Experimental Scene. bouton bascule est désactivé.
Cliquez sur Créer pour générer la scène.

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

À 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.
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
Vous pouvez en apprendre davantage sur les nœuds d'initialisation ici.
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.

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.

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é.

Si vous n'êtes pas familier avec la méthode de validation croisée imbriquée en apprentissage automatique, vous pouvez consulter ce lien 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_sizedans SKRanger).max_features— Nombre de caractéristiques sélectionnées aléatoirement à chaque séparation (équivalent àMTRYdans SKRanger).class_weight— Stratégie de gestion du déséquilibre des classes (équivalent àweightdans SKRanger).random_state— Graine de reproductibilité (équivalent àseeddans SKRanger).
Les valeurs spécifiques définies à ce stade n'impactent pas le modèle final optimisé, car le processus d'entraînement s'appuiera sur la grille d'hyperparamètres personnalisée définie dans la section suivante.
Cependant, vous pouvez les initialiser en utilisant les valeurs indiquées dans la figure ci-dessous pour plus de cohérence.

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 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.

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
L'optimisation de class_weight diffère de l'étude originale. Pour cette preuve de concept, nous adoptons une configuration simplifiée afin d'assurer la stabilité et la clarté au sein de l'environnement MEDomics.
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.

Nœuds d'analyse
Aucun changement requis pour le nœud Analyze.
Création du pipeline
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 documentation pour plus d'informations.
L'étape finale avant l'exécution de la scène consiste à connecter les nœuds pour former le pipeline.
Connectez les nœuds Dataset au nœud Split .
Connectez les Split nœud à la première entrée du configuration Train Model .
Connectez les nœud Model à la deuxième entrée du configuration Train Model .
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
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 ici.
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.

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.

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

Et, les résultats du pipeline 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 documentation pour plus d'informations sur la marche à suivre.
Enregistrez la scène et les résultats en utilisant le bouton Save.
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.
Assurez-vous de sauvegarder les deux scènes (la scène du jeu de données réduit et la scène du jeu de données complet) pour préserver la reproductibilité et permettre des comparaisons futures.
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 :
Sélectionnez
homr_any_visit.csv.Conserver le format en tant que MEDomics Standard.
Appliquez les balises de colonnes appropriées (
adm,demo,dx) comme défini précédemment.Définissez la variable cible sur
oym.
Pour que cette configuration fonctionne, vous devez réappliquer les balises au homr_any_visit.csv jeu de données dans le Module Input.
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_featuresseulement). 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.
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 :

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_weightconfigurationNe 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.
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 .
Si vous n'exécutez pas la scène avec l'ensemble de données complet dans MEDomics, nous fournissons le notebook généré directement dans cette section. Toutes les étapes et directives requises sont incluses dans le notebook lui-même.
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 :
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.
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 ici.
Cela conclut notre section Module Learning. Passons au Module Évaluation pour tester notre modèle enregistré !
Mis à jour