1. Introduction

1.1 Objectifs du projet

  • Charger et prétraiter un jeu de données.
  • Réaliser une analyse exploratoire des données (EDA).
  • Construire et évaluer des modèles de classification supervisés.
  • Identifier les caractéristiques les plus importantes.

1.2 Jeu de données utilisé

  • Dataset Choisi : Healthcare Dataset

    Il est choisi à ce titre, sur lequel, dans ce rapport, nous allons appliquer toutes les étapes de traitement de notre application. Notre application généralise et fournit des fonctionnalités applicables à tout type de jeu de données….

    Inspiration:

    L’inspiration derrière cet ensemble de données est ancrée dans le besoin de données de santé pratiques et diversifiées à des fins éducatives et de recherche. Les données de santé sont souvent sensibles et soumises à des réglementations en matière de confidentialité, ce qui rend difficile l’accès à ces données à des fins d’apprentissage et d’expérimentation. Pour combler cette lacune, Nous avons exploité la bibliothèque dplyr de R pour générer un ensemble de données synthétique qui reflète la structure et les attributs généralement trouvés dans les dossiers médicaux. Le jeu de données généré contient des variables comme l’âge, le sexe, les informations médicales et hospitalières des patients, et il inclut des aspects réalistes comme les valeurs manquantes, les outliers et un déséquilibre des classes. Ce dataset peut être utilisé pour l’analyse exploratoire, l’entraînement de modèles, et l’évaluation des performances de classification supervisée dans un contexte médical.

    Dataset Information:

    Chaque colonne fournit des informations spécifiques sur le patient, son admission et les services de santé fournis, ce qui rend cet ensemble de données adapté à diverses tâches d’analyse et de modélisation de données dans le domaine de la santé. Voici une brève explication de chaque colonne de l’ensemble de données :

    • Nom : Cette colonne représente le nom du patient associé au dossier médical.

    • Âge : Âge du patient au moment de l’admission, exprimé en années.

    • Sexe : indique le sexe du patient, soit « Homme » soit « Femme ».

    • Groupe sanguin : Le groupe sanguin du patient, qui peut être l’un des groupes sanguins courants (par exemple, « A+ », « O- », etc.).

    • État médical : cette colonne précise l’état médical principal ou le diagnostic associé au patient, tel que « Diabète », « Hypertension », « Asthme », etc.

    • Date d’admission : Date à laquelle le patient a été admis à l’établissement de santé.

    • Médecin : Le nom du médecin responsable des soins du patient lors de son admission.

    • Hôpital : Identifie l’établissement de santé ou l’hôpital où le patient a été admis.

    • Fournisseur d’assurance : cette colonne indique le fournisseur d’assurance du patient, qui peut être l’une des nombreuses options, notamment « Aetna », « Blue Cross », « Cigna », « UnitedHealthcare » et « Medicare ».

    • Montant facturé : montant facturé pour les services de santé du patient lors de son admission. Il est exprimé sous forme de nombre à virgule flottante.

    • Numéro de chambre : Le numéro de la chambre où le patient a été hébergé lors de son admission.

    • Type d’admission : Spécifie le type d’admission, qui peut être « Urgence », « Électif » ou « Urgent », reflétant les circonstances de l’admission.

    • Date de sortie : Date à laquelle le patient est sorti de l’établissement de santé, en fonction de la date d’admission et d’un nombre aléatoire de jours dans une plage réaliste.

    • Médicament : désigne un médicament prescrit ou administré au patient lors de son admission. Exemples : « aspirine », « ibuprofène », « pénicilline », « paracétamol » et « lipitor ».

    • Résultats des tests : décrit les résultats d’un test médical effectué lors de l’admission du patient. Les valeurs possibles sont « Normal », « Anormal » ou « Non concluant », indiquant le résultat du test.

    NB:

    • Nous reconnons l’importance de la confidentialité et de la sécurité des données de santé et nous soulignons que cet ensemble de données est entièrement synthétique. Il ne contient aucune information réelle sur les patients et ne viole aucune réglementation en matière de confidentialité.

    Raison du choix :

    Cet ensemble de données synthétiques sur les soins de santé a été créé pour servir de ressource précieuse , d’apprentissage automatique et d’analyse de données. Il est conçu pour imiter les données de santé du monde réel. Le dataset est suffisamment complexe pour nécessiter des étapes d’exploration et de prétraitement avancées tout en étant compréhensible pour les utilisateurs, ce qui est idéal pour un projet de groupe. Ce dataset comprend également différentes variables qui nécessitent un nettoyage, comme la gestion des valeurs manquantes, des outliers et des variables catégorielles. De plus, il y a un besoin évident d’analyse unidimensionnelle et bidimensionnelle pour visualiser les relations entre les différentes variables , le dataset présente une possibilité de mesurer des performances avec des métriques comme la précision, le rappel, l’AUC et la courbe ROC, ce qui permettra d’évaluer correctement la qualité du modèle d’où l’objectif de cette aventure …

    Autres Raisons : Taille du dataset : Le dataset est assez volumineux pour fournir une base solide pour l’apprentissage et la validation des modèles.

    Défis à relever : Identification de patterns et de comportements spécifiques dans les données, ce qui peut fournir une compréhension riche du problème à résoudre, avec des modèles capables de prédire plus positivement.

df$Date_d_admission <- as.Date(df$Date_d_admission, format="%Y-%m-%d")
df$Date_de_sortie <- as.Date(df$Date_de_sortie, format="%Y-%m-%d")
df$Duree_sejour <- as.numeric(difftime(df$Date_de_sortie, df$Date_d_admission, units = "days"))
df <- df[, !names(df) %in% c("Date_d_admission", "Date_de_sortie")]
df <- na.omit(df)

Head et Summary du dataframe avant la phase de preprocessing

## Warning: le package 'kableExtra' a été compilé avec la version R 4.3.3
Nom Age Sexe Groupe_sanguin Etat_medical Medecin Hopital Fournisseur_d_assurance Montant_facture Numero_de_chambre Type_d_admission Medicament Resultats_des_tests Duree_sejour
1 ucyfowdboq 56 Femme B- Anémie Dr. Brown Hôpital B Cigna 19914.07 423 Urgent Aspirine Normal -2734
3 sljcgtfbiq 73 Homme A- Anémie Dr. Johnson Hôpital B Blue Cross 9080.97 471 Urgence Ibuprofène Normal 4631
4 blfnjjkjgb 53 Homme O- Asthme Dr. Smith Hôpital A Medicare 21966.54 149 Urgent Lipitor Normal 1876
5 kzqzkptuew 24 Femme A- Cancer Dr. Brown Hôpital D UnitedHealthcare 3575.54 377 Urgence Aspirine Anormal -504
6 nkhxjasafg 60 Femme A+ Maladies cardiaques Dr. Johnson Hôpital C Aetna 42591.01 217 Urgence Aspirine Normal -2798
8 zkcfxjwbfv 17 Homme O- Maladies cardiaques Dr. Smith Hôpital D UnitedHealthcare 40059.78 142 Urgent Aspirine Normal 56
Nom Age Sexe Groupe_sanguin Etat_medical Medecin Hopital Fournisseur_d_assurance Montant_facture Numero_de_chambre Type_d_admission Medicament Resultats_des_tests Duree_sejour
Length:8143 Min. :13.00 Length:8143 Length:8143 Length:8143 Length:8143 Length:8143 Length:8143 Min. : 1000 Min. :101 Length:8143 Length:8143 Length:8143 Min. :-4990.00
Class :character 1st Qu.:31.00 Class :character Class :character Class :character Class :character Class :character Class :character 1st Qu.: 13556 1st Qu.:205 Class :character Class :character Class :character 1st Qu.:-1499.00
Mode :character Median :51.00 Mode :character Mode :character Mode :character Mode :character Mode :character Mode :character Median : 25988 Median :302 Mode :character Mode :character Mode :character Median : 4.00
NA Mean :50.86 NA NA NA NA NA NA Mean : 30002 Mean :302 NA NA NA Mean : -15.07
NA 3rd Qu.:71.00 NA NA NA NA NA NA 3rd Qu.: 38430 3rd Qu.:402 NA NA NA 3rd Qu.: 1476.50
NA Max. :89.00 NA NA NA NA NA NA Max. :493220 Max. :500 NA NA NA Max. : 5004.00

On remarque ci-dessus dans la table summary que le jeu de données présente de nombreuses incohérences, indiquant qu’il nécessite un traitement rigoureux. Dans les sections suivantes, nous entreprendrons un processus méthodique de nettoyage et de préparation des données afin d’obtenir un jeu de données propre et prêt pour nos futurs problèmes de classification.

Analyse Exploratoire des Données (EDA) avant préprocessing

Analyse Univarié

## Warning: le package 'ggplot2' a été compilé avec la version R 4.3.3
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Analyse bivarié

## Warning: le package 'reshape2' a été compilé avec la version R 4.3.3

2.2 Prétraitement des données

  • Identification des types de variables (qualitatives, quantitatives).

  • Gestion des valeurs manquantes.

  • Détection et gestion des outliers.

  • Normalisation des variables quantitatives.

  • Dummification des variables qualitatives.

  • Gestion du déséquilibre des classes (oversampling/undersampling).

Head du dataframe après la phase du preprocessing

Age Montant_facture Numero_de_chambre Duree_sejour Sexe.Femme Sexe.Homme Groupe_sanguin.A- Groupe_sanguin.A+ Groupe_sanguin.AB- Groupe_sanguin.AB+ Groupe_sanguin.B- Groupe_sanguin.B+ Groupe_sanguin.O- Groupe_sanguin.O+ Etat_medical.Anémie Etat_medical.Asthme Etat_medical.Cancer Etat_medical.Diabète Etat_medical.Hypertension Etat_medical.Maladies cardiaques Medecin.Dr. Brown Medecin.Dr. Johnson Medecin.Dr. Jones Medecin.Dr. Smith Medecin.Dr. Williams Hopital.Hôpital A Hopital.Hôpital B Hopital.Hôpital C Hopital.Hôpital D Fournisseur_d_assurance.Aetna Fournisseur_d_assurance.Blue Cross Fournisseur_d_assurance.Cigna Fournisseur_d_assurance.Medicare Fournisseur_d_assurance.UnitedHealthcare Type_d_admission.Électif Type_d_admission.Urgence Type_d_admission.Urgent Medicament.Aspirine Medicament.Ibuprofène Medicament.Lipitor Medicament.Paracétamol Medicament.Pénicilline Resultats_des_tests.Anormal Resultats_des_tests.Non_concluant Resultats_des_tests.Normal
1 0.2294339 -0.3118303 1.0601093 -1.3112570 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1
3 0.9880991 -0.6952688 1.4805346 2.2406577 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1
4 0.0955518 -0.2391829 -1.3398184 0.9120053 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1
5 -1.1986418 -0.8901339 0.6572017 -0.2357961 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0
6 0.4079433 0.4908219 -0.7442159 -1.3421222 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1
8 -1.5110334 0.4012288 -1.4011305 0.0342748 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1

3. Heatmap après les phases de data preprocessing

3.3 Insights issus de l’EDA après la phase de préprocessing

  1. Corrélations élevées :

    • Certaines variables catégoriques ou binaires semblent fortement corrélées (valeur de corrélation proche de 1). Cela peut être dû à des informations redondantes ou des variables dérivées.

    • Exemple : Les résultats de tests médicaux (normal ou non concluant) sont probablement liés à d’autres variables décrivant l’état médical.

  2. Corrélations négatives :

    • On remarque quelques points bleus, suggérant des relations négatives entre certaines variables. Par exemple, il est possible qu’un groupe sanguin soit lié de manière inverse à un type particulier d’hospitalisation ou de médicament.
  3. Variables avec peu de corrélations :

    • Des variables comme Numéro de chambre, semblent avoir peu ou pas de corrélation avec d’autres caractéristiques, ce qui suggère qu’elles peuvent être moins pertinentes pour la classification.
  4. Redondance potentielle :

    • Les groupes de variables comme les médicaments prescrits ou les états médicaux montrent des blocs corrélés, indiquant qu’il pourrait être nécessaire d’utiliser des techniques de réduction de dimensions (PCA, ou sélection de variables) pour simplifier le modèle.

Points clés observés dans les données :

  • Hétérogénéité des données : Les variables incluent des caractéristiques démographiques (âge, sexe), des variables ordinales (type d’admission) et catégoriques (état médical, fournisseur d’assurance). Cela a nécessité un prétraitement adapté pour harmoniser les types.

  • Relation entre diagnostics et traitements : Les états médicaux (comme diabète ou hypertension) semblent fortement corrélés à l’utilisation de certains médicaments. Ces variables pourraient être des indicateurs-clés pour les modèles de classification.

  • Montant des factures corrélé avec des caractéristiques spécifiques : Le montant des factures semble partiellement corrélé avec des variables comme l’âge et la durée du séjour.

Hypothèses potentielles pour les modèles :

  1. Variables influentes pour la classification :

    • Les états médicaux (comme le diabète) et les résultats des tests médicaux pourraient être des variables déterminantes pour prédire un objectif comme le type d’admission (urgence ou non) ou le choix du traitement.
  2. Interactions complexes :

    • Des relations croisées entre les médicaments et les états médicaux sont à prévoir. Par exemple, certains traitements sont spécifiques à certains diagnostics.
  3. Réduction de dimensions :

    • Il est probable que les données contiennent des variables redondantes. Des techniques comme l’analyse en composantes principales (PCA) ou la sélection par importance des features pourraient améliorer les performances des modèles.
  4. Détection de sous-groupes dans les données :

    • Les groupes sanguins ou fournisseurs d’assurance pourraient avoir un impact indirect sur certains résultats, par exemple via des biais géographiques ou de traitement.
  5. Prédictions possibles :

    • Modèles supervisés (comme Random Forest ou Gradient Boosting) pourraient être utilisés pour prédire :

      • Le type de traitement requis en fonction des diagnostics.

      • Le risque d’une issue défavorable (basé sur les résultats des tests médicaux et l’état général du patient).

Autres perspectives, issus de l’EDA:

  1. Réaliser une réduction de dimensions pour éliminer les variables redondantes.

  2. Tester plusieurs algorithmes de classification et évaluer leur performance sur les métriques adaptées à votre problématique.


4. Modélisation

4.1 Sélection des modèles

*Méthodologie d’entraînement : validation croisée

  • Présentation des modèles choisis et leurs métriques respectives : Logistic Regression, Random Forest, SVM , KNN , Decision Trees.

Résumé des performances comparées des modèles apprises

Accuracy.Min. Accuracy.1st.Qu. Accuracy.Median Accuracy.Mean Accuracy.3rd.Qu. Accuracy.Max. Accuracy.NA.s AUC.Min. AUC.1st.Qu. AUC.Median AUC.Mean AUC.3rd.Qu. AUC.Max. AUC.NA.s Kappa.Min. Kappa.1st.Qu. Kappa.Median Kappa.Mean Kappa.3rd.Qu. Kappa.Max. Kappa.NA.s logLoss.Min. logLoss.1st.Qu. logLoss.Median logLoss.Mean logLoss.3rd.Qu. logLoss.Max. logLoss.NA.s Mean_Balanced_Accuracy.Min. Mean_Balanced_Accuracy.1st.Qu. Mean_Balanced_Accuracy.Median Mean_Balanced_Accuracy.Mean Mean_Balanced_Accuracy.3rd.Qu. Mean_Balanced_Accuracy.Max. Mean_Balanced_Accuracy.NA.s Mean_Detection_Rate.Min. Mean_Detection_Rate.1st.Qu. Mean_Detection_Rate.Median Mean_Detection_Rate.Mean Mean_Detection_Rate.3rd.Qu. Mean_Detection_Rate.Max. Mean_Detection_Rate.NA.s Mean_F1.Min. Mean_F1.1st.Qu. Mean_F1.Median Mean_F1.Mean Mean_F1.3rd.Qu. Mean_F1.Max. Mean_F1.NA.s Mean_Neg_Pred_Value.Min. Mean_Neg_Pred_Value.1st.Qu. Mean_Neg_Pred_Value.Median Mean_Neg_Pred_Value.Mean Mean_Neg_Pred_Value.3rd.Qu. Mean_Neg_Pred_Value.Max. Mean_Neg_Pred_Value.NA.s Mean_Pos_Pred_Value.Min. Mean_Pos_Pred_Value.1st.Qu. Mean_Pos_Pred_Value.Median Mean_Pos_Pred_Value.Mean Mean_Pos_Pred_Value.3rd.Qu. Mean_Pos_Pred_Value.Max. Mean_Pos_Pred_Value.NA.s Mean_Precision.Min. Mean_Precision.1st.Qu. Mean_Precision.Median Mean_Precision.Mean Mean_Precision.3rd.Qu. Mean_Precision.Max. Mean_Precision.NA.s Mean_Recall.Min. Mean_Recall.1st.Qu. Mean_Recall.Median Mean_Recall.Mean Mean_Recall.3rd.Qu. Mean_Recall.Max. Mean_Recall.NA.s Mean_Sensitivity.Min. Mean_Sensitivity.1st.Qu. Mean_Sensitivity.Median Mean_Sensitivity.Mean Mean_Sensitivity.3rd.Qu. Mean_Sensitivity.Max. Mean_Sensitivity.NA.s Mean_Specificity.Min. Mean_Specificity.1st.Qu. Mean_Specificity.Median Mean_Specificity.Mean Mean_Specificity.3rd.Qu. Mean_Specificity.Max. Mean_Specificity.NA.s prAUC.Min. prAUC.1st.Qu. prAUC.Median prAUC.Mean prAUC.3rd.Qu. prAUC.Max. prAUC.NA.s
RandomForest 0.3118453 0.3145291 0.3172130 0.3172130 0.3198968 0.3225806 0 0.4829757 0.4830535 0.4831313 0.4831313 0.4832091 0.4832869 0 -0.0322478 -0.0282104 -0.0241729 -0.0241729 -0.0201354 -0.0160980 0 1.126725 1.126881 1.127037 1.127037 1.127193 1.127349 0 0.4838715 0.4858926 0.4879137 0.4879137 0.4899348 0.4919560 0 0.1039484 0.1048430 0.1057377 0.1057377 0.1066323 0.1075269 0 0.3111375 0.3138799 0.3166224 0.3166224 0.3193648 0.3221073 0 0.6558204 0.6572134 0.6586065 0.6586065 0.6599996 0.6613927 0 0.3119804 0.3145147 0.3170489 0.3170489 0.3195832 0.3221175 0 0.3119804 0.3145147 0.3170489 0.3170489 0.3195832 0.3221175 0 0.3118223 0.3145204 0.3172186 0.3172186 0.3199167 0.3226149 0 0.3118223 0.3145204 0.3172186 0.3172186 0.3199167 0.3226149 0 0.6559207 0.6572648 0.6586089 0.6586089 0.6599530 0.6612970 0 0.3235626 0.3250670 0.3265715 0.3265715 0.3280759 0.3295803 0
DecisionTree 0.3448832 0.3489849 0.3530867 0.3530867 0.3571885 0.3612903 0 0.4999834 0.5045634 0.5091434 0.5091434 0.5137234 0.5183033 0 0.0174983 0.0235329 0.0295674 0.0295674 0.0356020 0.0416366 0 1.096610 1.098019 1.099427 1.099427 1.100836 1.102245 0 0.5087471 0.5117619 0.5147766 0.5147766 0.5177914 0.5208061 0 0.1149611 0.1163283 0.1176956 0.1176956 0.1190628 0.1204301 0 NA NA NA NaN NA NA 2 0.6747790 0.6776395 0.6805000 0.6805000 0.6833604 0.6862209 0 NA NA NA NaN NA NA 2 NA NA NA NaN NA NA 2 0.3449915 0.3490104 0.3530294 0.3530294 0.3570483 0.3610672 0 0.3449915 0.3490104 0.3530294 0.3530294 0.3570483 0.3610672 0 0.6725028 0.6745134 0.6765239 0.6765239 0.6785345 0.6805450 0 0.1523398 0.1552843 0.1582288 0.1582288 0.1611733 0.1641178 0
SVM 0.3233871 0.3241278 0.3248684 0.3248684 0.3256091 0.3263497 0 0.4831185 0.4842519 0.4853852 0.4853852 0.4865186 0.4876519 0 -0.0147339 -0.0136535 -0.0125730 -0.0125730 -0.0114926 -0.0104121 0 1.100093 1.100227 1.100361 1.100361 1.100496 1.100629 0 0.4926276 0.4931702 0.4937127 0.4937127 0.4942553 0.4947979 0 0.1077957 0.1080426 0.1082895 0.1082895 0.1085364 0.1087832 0 0.3149896 0.3173843 0.3197790 0.3197790 0.3221737 0.3245684 0 0.6609329 0.6615317 0.6621305 0.6621305 0.6627294 0.6633282 0 0.3258538 0.3260367 0.3262196 0.3262196 0.3264024 0.3265853 0 0.3258538 0.3260367 0.3262196 0.3262196 0.3264024 0.3265853 0 0.3234980 0.3242242 0.3249504 0.3249504 0.3256766 0.3264028 0 0.3234980 0.3242242 0.3249504 0.3249504 0.3256766 0.3264028 0 0.6617572 0.6621161 0.6624751 0.6624751 0.6628340 0.6631929 0 0.3244470 0.3260656 0.3276842 0.3276842 0.3293028 0.3309214 0
LogisticRegression 0.3392425 0.3405206 0.3417987 0.3417987 0.3430768 0.3443548 0 0.5040851 0.5046617 0.5052384 0.5052384 0.5058151 0.5063918 0 0.0088603 0.0107781 0.0126959 0.0126959 0.0146138 0.0165316 0 1.117549 1.118247 1.118946 1.118946 1.119644 1.120342 0 0.5044309 0.5053896 0.5063483 0.5063483 0.5073070 0.5082656 0 0.1130808 0.1135069 0.1139329 0.1139329 0.1143589 0.1147849 0 0.3390887 0.3404115 0.3417344 0.3417344 0.3430573 0.3443801 0 0.6694729 0.6700937 0.6707144 0.6707144 0.6713352 0.6719560 0 0.3398627 0.3412305 0.3425983 0.3425983 0.3439661 0.3453339 0 0.3398627 0.3412305 0.3425983 0.3425983 0.3439661 0.3453339 0 0.3392423 0.3405202 0.3417982 0.3417982 0.3430761 0.3443540 0 0.3392423 0.3405202 0.3417982 0.3417982 0.3430761 0.3443540 0 0.6696195 0.6702590 0.6708984 0.6708984 0.6715379 0.6721773 0 0.3320615 0.3330331 0.3340046 0.3340046 0.3349762 0.3359477 0
KNN 0.3344077 0.3350800 0.3357523 0.3357523 0.3364245 0.3370968 0 0.4960760 0.4993419 0.5026078 0.5026078 0.5058737 0.5091395 0 0.0015954 0.0026116 0.0036277 0.0036277 0.0046439 0.0056600 0 10.235716 10.343383 10.451050 10.451050 10.558717 10.666384 0 0.5007914 0.5013010 0.5018105 0.5018105 0.5023201 0.5028297 0 0.1114692 0.1116933 0.1119174 0.1119174 0.1121415 0.1123656 0 0.3338859 0.3346699 0.3354539 0.3354539 0.3362379 0.3370219 0 0.6673953 0.6676838 0.6679723 0.6679723 0.6682608 0.6685493 0 0.3336302 0.3345051 0.3353800 0.3353800 0.3362549 0.3371298 0 0.3336302 0.3345051 0.3353800 0.3353800 0.3362549 0.3371298 0 0.3343802 0.3350616 0.3357429 0.3357429 0.3364243 0.3371057 0 0.3343802 0.3350616 0.3357429 0.3357429 0.3364243 0.3371057 0 0.6672026 0.6675404 0.6678781 0.6678781 0.6682159 0.6685536 0 0.3177893 0.3193972 0.3210051 0.3210051 0.3226129 0.3242208 0
## Warning: le package 'pROC' a été compilé avec la version R 4.3.3
## [1] "X1" "X2" "X3"
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls > cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls > cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases

4.3 Résultats et Comparaison des modèles

  • ROC Curves: L’analyse des courbes ROC indique que la Logistic Regression et la Decision Tree semblent avoir les meilleures performances globales. Leurs courbes sont plus proches de la limite supérieure gauche du graphique, ce qui suggère une meilleure capacité à distinguer les classes positives des négatives.
  • Summary Statistics: Les statistiques résumées confirment cette observation. La Logistic Regression et la Decision Tree présentent généralement des valeurs plus élevées pour les métriques telles que l’AUC, la précision, le rappel et la spécificité.

5. Conclusion

Sur la base de l’analyse des courbes ROC et des statistiques résumées, la Logistic Regression et la Decision Tree semblent être les modèles les plus performants pour le jeu de données étudié. Cependant, il est important de noter que ces résultats sont basés sur un nombre limité de resamples et que d’autres facteurs tels que l’optimisation des hyperparamètres et l’analyse des erreurs doivent être pris en compte pour une évaluation plus complète. Les résultats de cette étude peuvent servir de base pour le développement de systèmes de classification dans différents domaines.

5.2 Perspectives

  • Limites de l’étude:

    • Nombre de resamples: Le nombre de resamples (2) est relativement faible. Une augmentation du nombre de resamples permettrait d’obtenir des résultats plus robustes et fiables.

    • Métriques: L’analyse pourrait être enrichie en considérant d’autres métriques de performance telles que la F1-score pondérée, la courbe PR (Precision-Recall) et l’analyse des coûts.

    Suggestions d’améliorations:

    • Hyperparamètre tuning: Une optimisation plus poussée des hyperparamètres de chaque modèle pourrait améliorer leurs performances.

    • Feature engineering: L’exploration de nouvelles caractéristiques ou la transformation des caractéristiques existantes pourrait améliorer la qualité des modèles.

    • Analyse des erreurs: Une analyse approfondie des erreurs de classification permettrait d’identifier les cas difficiles et d’adapter les modèles en conséquence.


Roadmap pour le Développement

Étape 1 : Configuration de l’Environnement

  • Temps estimé : 0.5 jour
    • Préparer l’environnement de développement R Shiny.
    • Installer les packages nécessaires (shiny, ggplot2, caret, randomForest, etc.).

Étape 2 : Chargement et Prétraitement des Données

  • Temps estimé : 2 jours
    • Implémenter une interface pour charger tout type de données.
    • Développer les fonctionnalités de :
      • Détection des types de variables.
      • Gestion des valeurs manquantes.
      • Détection et traitement des outliers.
      • Normalisation des variables quantitatives.
      • Dummification des variables qualitatives.
      • Équilibrage des classes.

Étape 3 : Analyse Exploratoire des Données (EDA)

  • Temps estimé : 3 jours
    • Ajouter un onglet “EDA” à l’interface.
    • Implémenter :
      • Analyse unidimensionnelle avec visualisations.
      • Analyse bidimensionnelle avec visualisations et métriques.
      • Résumé des statistiques descriptives.

Étape 4 : Modélisation

  • Temps estimé : 3 jours
    • Ajouter un onglet “Modélisation”.
    • Implémenter les fonctionnalités :
      • Sélection du modèle (Logistic Regression, Random Forest).
      • Entraînement des modèles avec validation croisée.
      • Évaluation comparative (Precision, Recall, F-Score, ROC, AUC).
      • Affichage des graphiques ROC.

Étape 6 : Optimisation et Tests

  • Temps estimé : 2 jours
    • Tester toutes les fonctionnalités.
    • Résoudre les bugs.
    • Améliorer l’interface utilisateur (UI).

Étape 7 : Finalisation et Rapport

  • Temps estimé : 1 jour
    • Finaliser l’application Shiny.
    • Rédiger le rapport Markdown complet avec les résultats de l’étude.

Plan de Travail (Résumé)

Étape Description Durée Estimée
Configuration Préparation de l’environnement 0.5 jour
Chargement/Prétraitement Implémentation des outils de gestion des données 2 jours
Analyse Exploratoire Visualisations et métriques 3 jours
Modélisation Entraînement et évaluation des modèles 3 jours
Tests/Optimisation Debugging et optimisation de l’interface 2 jours
Rapport Final Rédaction et finalisation 1 jour

Temps total estimé : 11.5 jours