Module d’évaluation
Cette page documente l’étape d’évaluation et d’interprétation du modèle AdmDemo à l’aide du module d’évaluation.
Création d'un sous-échantillon de réserve
En raison des contraintes actuelles de scalabilité au sein de MEDomics—en particulier lors de la génération de l'ExplainerDashboard dans le module d'évaluation—nous avons limité l'évaluation à un sous-ensemble aléatoire de 100 patients provenant du jeu de réserve original. Cette approche nous permet de maintenir le flux d'évaluation complet tout en assurant la faisabilité et la stabilité computationnelles.
Vous pouvez également utiliser Holdout_homr_any_visit_10pct.csv pour cette section.
Bien que ce fichier ne nécessite aucune modification, il peut entraîner des temps d'exécution plus longs et une consommation de mémoire accrue. Cependant, les métriques de performance résultantes restent très similaires, vous pouvez donc suivre le tutoriel sans différences significatives dans les résultats.
Nous proposons également des méthodes alternatives pour générer des fichiers de test plus légers.
Créez un fichier Python nommé "creating_holdout_100_patients.py" dans votre dossier et ouvrez-le dans l'espace de travail. Placez le code suivant :
import pandas as pd
# Graine pour la reproductibilité
SEED = 54288
# Charger le jeu de données de réserve
holdout = pd.read_csv("Holdout_homr_any_visit_10pct.csv")
# Sélectionner aléatoirement 100 patients
holdout_100 = holdout.sample(n=100, random_state=SEED)
# Enregistrer le sous-ensemble
holdout_100.to_csv("holdout_100patients.csv", index=False)
print("Number of patients:", len(holdout_100))Exécutez le fichier dans le terminal IPython en utilisant cette commande :
Vous pouvez aussi utiliser les outils de création de jeu de réserve pour créer un sous-échantillon à partir du Holdout_homr_any_visit_10pct.csv fichier. Cliquez sur Mélanger et Stratifier, changez le pourcentage de partition à 5%, "drop" comme méthode de nettoyage des cellules vides, sélectionnez "oym" comme notre colonne cible et assurez-vous que le Conserver les étiquettes bouton bascule est actif afin que les étiquettes puissent être appliquées aux jeux résultants.
Les paramètres doivent être configurés comme montré dans la figure ci-dessous.

Les jeux résultants sont Learning_Holdout_homr_any_visit_10pct.csv et Holdout_Holdout_homr_any_visit_10pct.csv .
Pour l'évaluation, vous pouvez utiliser le Holdout_Holdout_homr_any_visit_10pct.csv jeu de données car il contient 123 patients.
Puisque nous utilisons le AdmDemo modèle, il est important de réappliquer les étiquettes décrites dans le module d'entrée section à ce sous-ensemble nouvellement créé. Cela garantit la cohérence entre la configuration d'entraînement et le jeu de données d'évaluation.
Si le script Python ne parvient pas à localiser le fichier de réserve original, double-cliquez sur Holdout_homr_any_visit_10pct.csv dans l'espace de travail et utilisez la fonction sync() pour le rendre accessible.
Initialisation
Apprenez comment créer une page d'évaluation ici.
Créez la page d'évaluation et activez le mode MEDomics Standard bascule.
Puisque les nœuds du jeu de données ont été configurés en utilisant le mode MEDomics Standard, il est essentiel d'activer le même mode ici pour assurer la cohérence à travers le pipeline. L'utilisation d'un mode différent peut entraîner des discordances dans l'interprétation des caractéristiques et les résultats d'évaluation.

Pour la configuration d'évaluation, nous sélectionnerons notre modèle Random Forest sauvegardé, qui devrait être disponible dans la liste des modèles de la scène "homr_scene", puis sélectionner le jeu de réserve créé ci-dessus holdout_100patients.csv comme notre jeu de données d'évaluation. Enfin, cliquez sur "Create an evaluation".

Comme mentionné précédemment, vous pouvez utiliser holdout_100patients.csv, Holdout_homr_any_visit_10pct.csv ou Holdout_Holdout_homr_any_visit_10pct.csv pour cette partie. Cette démonstration a été réalisée en utilisant le holdout_100patients.csv. Cependant, la structure des résultats et leur interprétation restent similaires quel que soit le fichier sélectionné.
Les résultats de l'évaluation
Les résultats de l'évaluation sont séparés en deux sections différentes :
Prédire/Test
La Prédire/Test section est l'endroit où vous pouvez voir les prédictions pour chaque ligne de notre jeu de réserve. Les résultats consistent en la valeur prédite (prediction_label) et le score de prédiction. Le score de prédiction, qui indique la confiance du modèle dans sa réponse, varie de 0 à 1 (ou de 0% à 100%), montrant à quel point un modèle est confiant dans sa réponse, 1 indiquant que le modèle est complètement certain de sa réponse.

Tableau de bord
L'onglet secondaire, nommé "Dashboard", est un outil interactif utilisé pour l'interprétation et le diagnostic. Il nous permet d'analyser en profondeur notre modèle sauvegardé. Il est basé sur le paquet open-source Python ExplainerDashboard .
Le modèle a été entraîné en utilisant le Learning_homr_any_visit_10pct.csv jeu de données et évalué sur un sous-ensemble de 100 patients.
Performance globale du modèle
Le tableau de bord affiche d'abord des métriques de performance globales.
Expliquons ce qu'elles signifient en termes simples.
Exactitude (0,86) : L'exactitude signifie que 86% des prédictions sont correctes dans l'ensemble. Cependant, l'exactitude seule peut être trompeuse lorsque l'événement est rare (seulement 17% des patients sont décédés dans ce jeu de données). C'est pourquoi nous avons besoin de métriques supplémentaires.
Rappel (0,76) : Le rappel mesure combien de décès réels ont été correctement détectés. Ici, le modèle identifie 76% des patients qui sont décédés dans l'année. Dans les applications de santé, le rappel est souvent très important, car ne pas détecter des patients à haut risque (faux négatifs) peut avoir des conséquences graves.
Précision (0,57) : La précision mesure combien des patients prédits à haut risque sont effectivement décédés.
Parmi les patients prédits comme à haut risque, 57% sont effectivement décédés.
Étant donné que le taux de mortalité de référence n'est que de 17%, cela montre que le modèle concentre significativement le risque dans le groupe prédit comme à haut risque.
ROC-AUC (0,90) : Le ROC-AUC mesure la capacité du modèle à séparer les patients à haut risque des patients à faible risque pour tous les seuils possibles. Une valeur de 0,90 indique une très forte capacité de discrimination.
En termes simples :
Si nous choisissons au hasard un patient décédé et un patient survivant, le modèle attribuera correctement un score de risque plus élevé au patient décédé environ 90% du temps.
PR-AUC (0,66) : Parce que la mortalité est relativement rare (17%), la courbe Précision-Rappel est particulièrement importante. Un PR-AUC de 0,66 montre que le modèle fonctionne bien mieux qu'un choix aléatoire (qui serait d'environ 0,17).

Matrice de confusion
Une matrice de confusion résume comment les prédictions du modèle se comparent aux résultats réels. Dans un problème de classification binaire (Décès = 1, Survie = 0), il y a quatre issues possibles.
Sur 100 patients :
Vrais négatifs : 73. Ce sont des patients qui ont survécu et ont été correctement prédits comme à faible risque.
Vrais positifs : 13. Ces patients sont décédés et ont été correctement prédits comme à haut risque.
Faux positifs : 10. Ces patients ont été prédits comme à haut risque mais ont en réalité survécu.
Faux négatifs : 4. Ces patients sont décédés mais ont été prédits comme à faible risque.
Dans notre échantillon, 17 patients sont décédés et 83 patients ont survécu. Le modèle :
A correctement identifié 13 décès
A manqué 4 décès
A incorrectement signalé 10 survivants comme à haut risque
Le modèle capture la plupart des cas de mortalité (76%) tout en maintenant les fausses alertes relativement modérées.

Stratification du risque
Ce graphique montre comment la prévalence de la mortalité change à mesure que la probabilité prédite augmente.
Nous observons :
Taux de mortalité global : 17%
En dessous du seuil (0,5) : seulement 5% de mortalité
Au-dessus du seuil : environ 56% de mortalité
Interprétation :
Le modèle sépare efficacement les patients en :
Un groupe à faible risque (taux de mortalité très faible)
Un groupe à haut risque (taux de mortalité sensiblement plus élevé)
Cela signifie que les probabilités prédites sont significatives et non aléatoires.

Courbe Précision-Rappel
La courbe Précision–Rappel montre comment la précision et le rappel varient lorsque nous déplaçons le seuil de décision. Parce que la mortalité n'est pas fréquente, la courbe Précision–Rappel donne une vue plus claire des performances.
La courbe montre comment la précision diminue à mesure que le rappel augmente.
Cela aide à décider :
Si nous voulons détecter le plus grand nombre possible de décès
Ou réduire le nombre de fausses alertes

Interaction des caractéristiques
Cette section illustre comment le modèle capture les interactions entre les caractéristiques cliniques plutôt que d'évaluer chaque variable indépendamment.
Le panneau d'entrée de caractéristiques montré ci-dessous permet aux utilisateurs de modifier les caractéristiques individuelles d'un patient et d'observer immédiatement comment le risque de mortalité prédit change. Ce composant interactif aide à démontrer que les prédictions ne sont pas des valeurs fixes mais dépendent de la combinaison des caractéristiques d'entrée.
La figure met également en évidence comment les variations de la variable « service_group » peuvent influencer le comportement et l'impact d'autres variables dans le modèle. Dans notre analyse globale de l'importance des caractéristiques, « service_group » se classe comme la caractéristique la plus influente, suivie par l'âge. Cela suggère que le contexte clinique (représenté par le service) joue un rôle central dans la prédiction de la mortalité et peut modifier la contribution d'autres variables, y compris l'âge.

Ce graphique d'interaction visualise comment deux caractéristiques influencent conjointement la prédiction :
service_group (axe des x)
age_original (échelle de couleur)
L'axe vertical montre la valeur SHAP, qui représente la contribution de l'interaction au risque de mortalité prédit.
Chaque point correspond à un patient.
Comment interpréter le graphique d'interaction :
1. Axe X (service_group) : Représente le type de service hospitalier ou le contexte clinique. Différentes catégories de service montrent différentes distributions de valeurs SHAP.
2. Échelle de couleur (âge) : La couleur représente l'âge du patient :
Bleu = patients plus jeunes
Rouge = patients plus âgés
Cela nous permet de voir comment l'âge modifie l'impact du service.
3. Axe Y (valeur SHAP) : La valeur SHAP mesure dans quelle mesure cette interaction pousse la prédiction :
Valeur SHAP positive → augmente le risque de mortalité prédit
Valeur SHAP négative → diminue le risque de mortalité prédit

Que sont les valeurs SHAP ?
Les valeurs SHAP, abréviation de SHapley Additive exPlanations, sont une méthode utilisée pour expliquer comment chaque caractéristique d'un modèle contribue à une prédiction spécifique. En termes simples, une valeur SHAP montre dans quelle mesure une caractéristique particulière augmente ou diminue la prédiction du modèle par rapport à la prédiction moyenne. Cela fait des valeurs SHAP un moyen puissant et cohérent d'interpréter des modèles complexes, nous aidant à comprendre quels facteurs influencent le plus chaque prédiction.
Cela conclut notre section du module d'évaluation, n'hésitez pas à explorer davantage d'options sur le tableau de bord généré !
Mis à jour