Analyse discriminante

L'analyse discriminante est à la fois une méthode prédictive (analyse discriminante linéaire – ADL) et descriptive (analyse factorielle discriminante – AFD). Elle vise à expliquer et prédire l'appartenance des individus à des groupes (des classes), représentés par une variable cible catégorielle, à partir d'une collection de variables explicatives/descriptives, principalement quantitatives, mais qui peuvent être qualitatives moyennant un aménagement.

Ce cours s'inscrit avant tout dans la démarche prédictive. Une fois posées les hypothèses fondatrices de la méthode, nous mettons l'accent sur la construction de fonctions de classement explicites, déployables directement dans la population. Nous nous attardons ensuite sur les procédures d'évaluation des modèles, pris dans leur globalité ou sous l'angle de la contribution des variables. Les questions pratiques telles que la sélection de variables ou l'appréhension des variables prédictives qualitatives nous permettent d'être directement opérationnels pour la mise en oeuvre de la méthode dans des problèmes réels.

Ce cours est dispensé dans notre Master 1 Informatique qui prépare -- entres autres -- au Master SISE - Data Science. Les travaux dirigés sont réalisés sous Python avec principalement le package "scikit-learn".

Ressources en ligne

Ressources

Supports

Ouvrage de référence

Ouvrage de référence pour le cours - Ricco Rakotomalala, "Pratique de l'Analyse Discriminante Linéaire", Mai 2020.

Cet ouvrage, totalement gratuit, détaille les différents aspects de l'analyse discriminante, prédictive (analyse discriminante linéaire) et descriptive (analyse factorielle discriminante). Table des matières : (1) Analyse discriminante linéaire – Principe ; (2) Évaluation statistique ; (3) Traitement des descripteurs qualitatifs - La méthode DISQUAL ; (4) Sélection de variables ; (5) Particularité du problème à (K=2) classes ; (6) Bayésien naïf – Modèle d'indépendance conditionnelle ; (7) Régularisation – Analyse discriminante sur facteurs de l'ACP et de la régression PLS ; (8) Analyse factorielle discriminante ; (9) Analyse des correspondances discriminante ; (10) Outils logiciels ; (11) Références ; (12) Annexes. Package : La librairie « discriminR » pour R permet de mettre en œuvre les principales idées mis en avant dans l'ouvrage, elle propose des sorties aux standards des logiciels de référence.

Principaux slides pour le cours

Analyse discriminante linéaire - Méthode predictive. Modèle paramétrique de discrimination. Hypothèses fondatrices. Analyse discriminante de Fisher. Evaluation globale et pertinence des variables. Sélection de variables. Fonction de classement. Fonction score. Triatement des variables qualitatives.

Analyse factorielle discriminante - Méthode descriptive. Construction des axes factorielles. Fonctions discriminantes canoniques. Structures canoniques totales, intra-classes, inter-classes. Interprétation des facteurs. Choix du nombre de facteurs. Tests de Fisher (Rao) et du khi-2 (Bartlett). Extension à la démarche prédictive. Classement des individus à partir de leurs coordonnées factorielles. Distance de Mahalanobis.

Analyse des correspondances discriminante - Méthode descriptive. Extension de l'analyse factorielle discriminante aux descripteurs catégoriels. Construction des facteurs. Interprétation des axes factoriels. Traitement des individus supplémentaires. Affectation aux classes. Distance du KHI-2.

Régression linéaire pour le classement. Utilisation de la régression linéaire multiple pour le classement. Equivalence avec l'analyse discriminante linéaire dans le cadre binaire. Tests de significativité globale et individuelles des coefficients. Formules de passage entre les coefficients des fonctions de classement.

Classifieur bayésien naïf. Principe de l'indépendance conditionnelle. Cas des descripteurs catégoriels et quantitatifs. Extraction de fonctions de classement. Sélection de variables.

Autres slides concernant la data science, dont l'apprentissage supervisé. Couvre les principales méthodes du traitement exploratoire des données (classification automatique, analyse factorielle, etc.), de l'économétrie (régression linéaire simple et multiple) et des statistiques (comparaison des populations, tests paramétriques et tests non paramétriques).

Tutoriels vidéos

Analyse discriminante sous Python avec le package scikit-learn. Documentation de scikit-learn pour l'analyse discriminante. Importation d'un fichier Excel avec la librairie pandas. Modélisation, affichage des coefficients des fonctions de classement. Prédiction sur des données de déploiement. Sélection de variables avec scikit-learn.

Analyse discriminante sous R avec le package discriminR. Installation du package discriminR. Création d'un projet Markdown. Importation d'un fichier Excel avec le package xlsx. Modélisation. Affichage des fonctions de classement. Prédiction. Sélection de variables. Comparaison avec le package klaR.

Analyse discriminante linéaire avec "scientisttools" (Python). Présentation des fonctionnalités des méthodes LDA (analyse discriminante linéaire prédictive) et STEPDISC (stepwise discriminant analysis - sélection de variables) de la librairie "scientisttools" (version 0.0.6) pour Python. Parallèle avec les procédures de référence "proc discrim" et "proc stepwise" du logiciel SAS, comparaison également avec les outils proposés par la librairie "discriminR" pour R. La démo s'appuie sur le schéma usuel de la classification supervisée : modélisation sur un échantillon d'apprentissage, prédiction et évaluation sur un échantillon test. Les données ont été préparées de manière à ce qu'il soit possible de réitérer à l'identique l'expérimentation sur d'autres outils/librairies.

La méthode DISQUAL (Python / scientisttools). Présentation de la méthode DISQUAL (discrimination sur variables qualitatives ; Saporta, 1975) qui combine l'analyse des correspondances multiples (ACM) et l'analyse discriminante linéaire (ADL) pour réaliser une classification supervisée (un classement) à partir de descripteurs tous qualitatifs. L'intérêt est de disposer en définitive un modèle s'exprimant sous la forme d'une combinaison linéaire des indicatrices (des modalités des variables), qui se prête facilement aux interprétations, notamment en scoring. Le nombre de facteurs de l'ACM à présenter à l'analyse discriminante constitue un paramètre de régularisation. Traitements sous Python avec la librairie "scientisttools" qui implémente nativement l'approche et présente directement les coefficients des modèles sous leur forme interprétable.

La méthode DISMIX (Python / scientisttools). Présentation de la méthode DISMIX de la librairie "scientisttools" pour Python, une généralisation de DISQUAL aux descripteurs mixtes (mix de variables explicatives quantitatives et qualitatives). Elle combine l'AFDM (analyse factorielle des données mixtes, généralisation de l'ACP normée et de l'ACM) et l'analyse discriminante linéaire (ADL) prédictive. Lecture des coefficients des fonctions discriminantes linéaires exprimées sur les variables originelles. Estimation de la probabilité de bien classer en validation croisée. Décryptage de la méthode via l'accès aux champs internes (AFDM et ADL) de l'objet de calcul.

Analyse discriminante linéaire - Projet Python. Présentation d'une librairie Python d'analyse discriminante linéaire prédictive (proc discrim), incluant la sélection de variables pas-à-pas (forward, backward ; proc stepdisc), réalisée par trois étudiants de la L3 IDS (informatique décisionnelle et statistique) de l'Université Lyon 2, promotion 2021 : Aleksandra Kruchinina, Aymeric Delefosse, Mamadou Diallo. Référence de la page GitHub, accès au code source, importation et mise en œuvre des algorithmes dans les notebooks Python. Possibilité de produire des rapports HTML ou PDF à partir des résultats des calculs.

Régression et classement - Equivalences (Python / scikit-learn). Utilisation de la régression linéaire multiple dans un problème de classification supervisée binaire. Equivalences avec les classifieurs linéaires, en particulier avec l'analyse discriminante linéaire, au regard des frontières induites dans l'espace de représentation (hyperplan séparateur). Performances en prédiction. Illustration sur les données "Breast Cancer Wisconsin", bien connues en machine learning. Traitements sous Python avec la librairie "scikit-learn".

Analyse discriminante PLS (Python / scikit-learn). Utilisation de la régression PLS (partial least squares regression - régression des moindres carrés partiels) pour le classement (classification supervisée) évaluée sous l'angle de l'AUC (aire sous la courbe) de la courbe ROC. La combinaison d'une analyse discriminante linéaire et la régression PLS. Les propriétés de régularisation (résistance à l'overfitting) de cette dernière via le nombre de composantes à retenir, facile à identifier et à manipuler. Projection des individus dans l'espace factoriel déduit des descripteurs (réduction de dimension), au sein duquel il est possible d'appliquer un algorithme supervisé pour discriminer les classes (classifieur linéaire avec une analyse discriminante ici, mais d'autres algorithmes auraient été possibles). Traitements sous Python avec la librairie "scikit-learn".

Analyse discriminante linéaire sous Tanagra. Importation des données, jonction entre Excel et Tanagra. Modélisation. Récupération des fonctions de classement dans Excel. Calcul des scores d'appartenance aux classes. Matrice de confusion et indicateurs de performances (taux d'erreur, rappel / sensibilité, précision).

Analyse discriminante sous Tanagra - Sélection de variables STEPDISC. Modélisation, pertinence des variables. Utilisation du composant STEPDISC. Modélisation sur les variables sélectionnées. Paramètres de l'agorithme de sélection.

Analyse discriminante sous SAS - PROC DISCRIM et PROC STEPDISC. SAS OnDemand for Academics. SAS Studio. Importation des données dans SAS Studio. Modélisation et sélection de variables.

Analyse factorielle discriminante (CANDISC) avec "scientisttools" (Python). Présentation de l'analyse discriminante descriptive (analyse factorielle discriminante, l'équivalent de la PROC CANDISC de SAS) de la librairie "scientisttools" pour Python. Le type de données traité, les différences et les accointances avec la classification supervisée (prédiction). La nature de l'espace factoriel généré. L'interprétation des facteurs, et dans le même temps la caractérisation des groupes, via les corrélations avec les variables descriptives. Le traitement des individus supplémentaires : projection dans l'espace factoriel et rattachement aux groupes.

Tutoriels rédigés

Analyse discriminante linéaire sous Python. Pratique de l'analyse discriminante prédictive sous Python avec le package "sckit-learn". Equivalences avec la proc discrim de SAS. Evaluation globale du modèle et des contributions des variables. Frontière de décision.

Analyse discriminante linéaire sous R. Pratique de l'analyse discriminante prédictive sous R avec la fonction lda() du package "MASS". Analyse factorielle discriminante. Equivalences avec la proc discrim de SAS. Evaluation globale du modèle et des contributions des variables. Sélection de variables. Stepdisc. Package "klaR".

Analyse discriminante linéaire - Comparaison de logiciels. Pratique de l'analyse discriminante prédictive sous TANAGRA avec les composants "Linear Discriminant Analysis" et "Stepdisc". Analyse factorielle discriminante sous TANAGRA avec "Canonical Discriminant Analysis". Comparaisons avec les outils dédiés de SAS (proc discrim et proc stepdisc) ; R (lda) ; SPSS.

Pipeline sous Python - La méthode DISQUAL. Pratique de l'analyse discriminante prédictive sur variables explicatives qualitatives. Construction des Pipeline sous Python. Identification du nombre de facteurs optimal pour la prédiction. Grille de recherche. Package "scikit-learn".

Classifieurs linéaires. Comportement de plusieurs classifieurs linéaires sur un exemple artificiel, dont l'analyse discriminante liéaire. Frontière de séparation. Modèle bayésien naïf. Régression Logistique. Support Vector Machine (SVM) linéaire. Perceptron simple (réseau de neurones). Utilisation de différents outils : Knime, Orange Machine Learning, RapidMiner, Weka.

StepDisc - Analyse discriminante. Sélection de variables. Méthodes ascendantes et descendantes. Evaluation bootstrap de l'erreur de prédiction.

Analyse discriminante et régression linéaire. Equivalences entre l'analyse discriminante linéaire binaire et régression linéaire multiple. Formules de transition. Classes équilibrées et déséquilibrées.

Analyse discriminante PLS. Régularisation. Analyse discriminante prédictive sur les axes de la régression PLS. Différentes approches de combinaison des deux approches.

Analyse discriminante PLS - Etude comparative. Etude de la PLS-LDA, combinaison de régression PLS et analyse discriminante linéaire. Traitement de données en grande dimension (278 var. explicatives vs. 232 obs.). Comparaison de la PLS-LDA avec des méthodes telles que les SVM (support vector machine), les KNN (nearest neighbor, plus proches voisins), les random forest, ou l'analyse discriminante linéaire prise isolément.

Modèle bayésien naïf pour prédicteurs continus. Principe du modèle d'indépendance conditionnelle. Hypothèses fondatrices. Bayésien naïf paramétrique. Extraction des coefficients des fonctions de classement. Evaluation des variables prédictives. Comparaison de plusieurs outils : Weka, Orange Machine Learning, Knime, RapidMiner, R (lda de MASS). Traitement des grands fichiers de données. Elaboration de la courbe ROC.

Analyse factorielle discriminante. Analyse discriminante descriptive pour les descripteurs quantitatifs. Construction d'une représentation intermédiaire, les variables latentes formées à partir des combinaisons linéaires des variables explicatives, qui permet de discerner au mieux les groupes correspondants aux modalités de la variable cible. Réduction de dimensionnalité. Analyse canonique discriminante. Vins de Bordeaux.

Analyse des correspondances discriminante. Analyse discriminante descriptive pour les descripteurs catégoriels. Transformation du tableau individus x variables en un tableau de contingence, auquel est appliqué une AFC (analyse factorielle des correspondances). Description de l'appartenance aux groupes à partir des variables explicatives qualitatives. Graphique des attractions et répulsions entre les modalités.


Ricco Rakotomalala