AP-4209 ESIEE-Paris: 2025 - 2026
Fouille de données avec R pour la data science et l’intelligence
artificielle (cours composé par M. Badr TAJINI)
Mini-projet 3 : Classification bayésienne & analyse factorielle discriminante (thèses françaises)
Travail en binôme (Kévin Feltrin et un autre étudiant). E4 - filière Data Science & Intelligence Artificielle - ESIEE Paris - 2025-2026
1 Introduction
1.0.1 1. Introduction
Le jeu de données regroupe des informations textuelles sur des thèses de doctorat françaises (titre + résumé/description) associées à un domaine d’étude. L’objectif de ce mini-projet est de construire une classification bayésienne adaptée à des données textuelles haute dimension, tout en intégrant une réduction discriminante pour améliorer la séparabilité entre domaines.
Le projet impose notamment :
- un prétraitement NLP (stopwords, ponctuation,
stemming/lemmatisation), puis une vectorisation (TF-IDF
ou embeddings),
- une modélisation thématique (topic modeling, ex. LDA
“topics”) pour analyser les rubriques et éventuellement en faire des
features,
- une réduction de dimension via LDA
discriminante (à ne pas confondre avec LDA topic
modeling),
- une classification bayésienne (Naive Bayes), puis
validation croisée et optimisation
d’hyperparamètres (Grid Search ou BayesOpt),
- une évaluation (Accuracy, Precision, Recall, F1) +
matrice de confusion, et une partie
interprétabilité (facteurs discriminants).
2 Méthodes
2.0.1 2. Méthodes
2.1 Prétraitement et représentation du texte
Nettoyage : - minuscules, suppression accents, - suppression URL, ponctuation/chiffres, - tokenisation simple sur espaces, - suppression stopwords français (Snowball), - stemming français (SnowballC) (ou tokenization simple selon paramètre).
Vectorisation : - construction TF-IDF sur train uniquement (pas de fuite), - limitation du vocabulaire (max_features + filtrage fréquence + doc_proportion).
2.2 Gestion multi-classes et déséquilibre
Le problème comporte un très grand nombre de domaines, avec un déséquilibre marqué (certaines classes dominent largement). Pour rendre le problème traitable et limiter l’explosion du nombre de classes, une stratégie simple est appliquée : - conservation des TOP_K domaines les plus fréquents (avec un seuil MIN_PER_CLASS), - regroupement du reste en une classe “Other”.
2.3 Topic Modeling (LDA “topics”)
Objectif : extraire des rubriques latentes via une LDA (Latent Dirichlet Allocation) sur un sous-échantillon de documents, pour : - interpréter qualitativement les grands thèmes, - fournir des visualisations “Top termes par topic”.
2.4 Réduction discriminante et classification
Pipeline principal :
- SVD tronquée (LSA) sur TF-IDF : compression
dimensionnelle efficace pour texte (matrice très sparse).
- LDA discriminante (MASS::lda) sur les composantes
SVD : projection supervisée vers des axes maximisant la séparabilité
inter-classes.
- Naive Bayes (e1071) entraîné sur les coordonnées discriminantes (axes LD).
2.5 Évaluation et validation
- Split train/test stratifié.
- Mesures : Accuracy + macro-Precision/Recall/F1 (macro utile en déséquilibre).
- Validation croisée k-fold du pipeline complet (TF-IDF → SVD → LDA discri → NB).
- Optimisation bayésienne des hyperparamètres (svd_dim, laplace, max_features).
3 Résultats
3.0.1 3. Résultats
3.1 Exploration des données
3.1.1 Distribution des classes
Distribution des classes après regroupement (TOP_K + Other).
Interprétation La distribution met en évidence un déséquilibre marqué : une classe (souvent Other après regroupement) concentre une part importante des observations, tandis que les autres domaines gardés (TOP_K) restent significativement moins représentés. Ce profil “long tail” est très classique sur des taxonomies de domaines (beaucoup de spécialités rares).
Implication pour l’évaluation Dans ce contexte, une métrique globale comme l’accuracy peut être trompeuse : un modèle peut “bien” scorer en prédisant souvent la classe dominante, tout en étant mauvais sur les classes minoritaires. C’est précisément pourquoi on privilégie des métriques macro (macro-precision/recall/F1), qui donnent le même poids à chaque classe et rendent visible la performance sur les domaines moins fréquents.
3.1.2 Longueur des textes
Interprétation La distribution des longueurs est très asymétrique à droite : la majorité des documents ont des résumés de taille “standard”, mais il existe une queue longue avec quelques documents extrêmement longs. Dans tes stats, on voit typiquement une médiane autour de ~228 mots, et des extrêmes très élevés (plusieurs milliers). Le choix de limiter l’axe au 99e percentile est pertinent : ça évite que quelques outliers écrasent toute la lecture du graphe, tout en décrivant correctement la masse principale.
Implication pour le NLP Cette hétérogénéité a deux effets pratiques :
Les documents longs ont plus de chances de contenir des termes rares et variés, ce qui peut augmenter le bruit si on ne contrôle pas le vocabulaire.
Le TF-IDF aide à compenser (pondération par la rareté + normalisation), mais on doit quand même surveiller les artefacts (ex. termes très spécifiques présents seulement dans quelques longs résumés). Ça justifie tes choix de pruning (min_term_count, doc_proportion_max) et de max_features.
3.2 Topic Modeling : sujets (topics)
## Top termes par topic (extrait) :
| X | Topic.1 | Topic.2 | Topic.3 | Topic.4 | Topic.5 | Topic.6 | Topic.7 | Topic.8 | Topic.9 | Topic.10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | cellul | etud | model | polit | plus | etud | droit | ete | system | the |
| 2 | chez | travail | method | social | etud | experimental | etre | etud | utilis | of |
| 3 | protein | analys | part | franc | ete | mesur | etat | compos | donne | oeuvr |
| 4 | gen | recherch | problem | entre | entre | mecan | plus | synthes | developp | comm |
| 5 | rol | entre | non | part | import | ete | comm | propriet | reseau | and |
| 6 | in | processus | deux | anne | eau | surfac | peut | reaction | permet | part |
| 7 | express | plus | cas | siecl | different | comport | tout | part | approch | in |
| 8 | montr | effet | etud | pratiqu | evolu | temperatur | bien | complex | bas | represent |
| 9 | mecan | evalu | temp | econom | analys | effet | mem | chimiqu | thes | thes |
| 10 | cellulair | object | resultat | espac | espec | propriet | fait | utilis | appliqu | analys |
Observation La figure “Top termes par topic” sert surtout à vérifier que la structure sémantique du corpus est plausible : idéalement, chaque topic regroupe des termes qui “vont ensemble” (ex. vocabulaire juridique, biomédical, informatique, SHS…). Si certains topics semblent dominés par des termes génériques (ou peu informatifs), ça peut indiquer : stopwords incomplets, effets du stemming, ou encore des formules récurrentes propres aux thèses.
Implication pour le projet Même si les topics ne sont pas directement utilisés comme features dans ton pipeline principal, ils jouent un rôle “qualité” important : - ils donnent une lecture qualitative des grands thèmes du dataset, - ils confirment que le texte contient bien une information discriminante potentielle, - et ils ouvrent une piste d’amélioration : ajouter les proportions de topics (document → distribution sur K topics) comme variables supplémentaires dans un modèle supervisé. C’est explicitement dans l’esprit des consignes (“topics pour comprendre et potentiellement utiliser comme fonctionnalités”).
N.B. Le topic modeling est réalisé sur un sous-ensemble de 20 000 docs pour limiter le temps de calcul tout en conservant assez de variété lexicale pour obtenir des topics stables.
3.3 Projection discriminante (LDA discri)
Remarque : une superposition importante est attendue, car la classe Other regroupe de nombreux domaines hétérogènes.
Interprétation Cette projection illustre ce que fait la LDA discriminante : trouver des axes (LD1, LD2) qui maximisent la séparation inter-classes (après SVD). On observe généralement des zones où certains domaines se concentrent (vocabulaire plus spécifique), mais aussi une superposition importante entre classes, ce qui est attendu sur des domaines proches ou sur la classe Other (très hétérogène).
Implication modèle Le chevauchement visuel explique une partie des confusions : plusieurs domaines partagent un lexique similaire (méthodes, termes scientifiques transverses). Cela justifie aussi le choix d’un pipeline “TF-IDF → SVD → LDA discri” : la SVD réduit le bruit haute dimension, puis la LDA tente d’extraire l’information discriminante restante. Si la séparation reste limitée, cela pointe vers des pistes : n-grams, features de topics, ou modèles plus expressifs.
3.4 Performances de classification
3.4.1 Baseline (classe majoritaire)
| accuracy | macro_precision | macro_recall | macro_f1 |
|---|---|---|---|
| 0.7329111 | 0.0563778 | 0.0769231 | 0.0650671 |
3.4.2 Modèle final (LDA discri + Naive Bayes)
| accuracy | macro_precision | macro_recall | macro_f1 |
|---|---|---|---|
| 0.4532522 | 0.3422385 | 0.5039507 | 0.3692563 |
3.4.3 Comparaison synthétique
| modele | accuracy | macro_precision | macro_recall | macro_f1 |
|---|---|---|---|---|
| Baseline (majoritaire) | 0.7329111 | 0.0563778 | 0.0769231 | 0.0650671 |
| LDA discri + Naive Bayes | 0.4532522 | 0.3422385 | 0.5039507 | 0.3692563 |
3.4.4 Matrices de confusion
## $positive
## NULL
##
## $table
## Reference
## Prediction Chimie
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 1245
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Droit public
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 689
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Histoire
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 989
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Informatique
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 1825
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Médecine Other
## Chimie 0 0
## Droit public 0 0
## Histoire 0 0
## Informatique 0 0
## Médecine 0 0
## Other 2296 38074
## Physique 0 0
## Psychologie 0 0
## Sciences appliquées 0 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0 0
## Sciences de gestion 0 0
## Sciences économiques 0 0
## Sociologie 0 0
## Reference
## Prediction Physique
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 1807
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Psychologie
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 745
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Sciences appliquées
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 864
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Sciences biologiques et fondamentales appliquées. Psychologie
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 884
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Sciences de gestion
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 787
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Sciences économiques
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 1042
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Sociologie
## Chimie 0
## Droit public 0
## Histoire 0
## Informatique 0
## Médecine 0
## Other 702
## Physique 0
## Psychologie 0
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
##
## $overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.7329111 0.0000000 0.7290839 0.7367123 0.7329111
## AccuracyPValue McnemarPValue
## 0.5022852 NaN
##
## $byClass
## Sensitivity
## Class: Chimie 0
## Class: Droit public 0
## Class: Histoire 0
## Class: Informatique 0
## Class: Médecine 0
## Class: Other 1
## Class: Physique 0
## Class: Psychologie 0
## Class: Sciences appliquées 0
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0
## Class: Sciences de gestion 0
## Class: Sciences économiques 0
## Class: Sociologie 0
## Specificity
## Class: Chimie 1
## Class: Droit public 1
## Class: Histoire 1
## Class: Informatique 1
## Class: Médecine 1
## Class: Other 0
## Class: Physique 1
## Class: Psychologie 1
## Class: Sciences appliquées 1
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 1
## Class: Sciences de gestion 1
## Class: Sciences économiques 1
## Class: Sociologie 1
## Pos Pred Value
## Class: Chimie NaN
## Class: Droit public NaN
## Class: Histoire NaN
## Class: Informatique NaN
## Class: Médecine NaN
## Class: Other 0.7329111
## Class: Physique NaN
## Class: Psychologie NaN
## Class: Sciences appliquées NaN
## Class: Sciences biologiques et fondamentales appliquées. Psychologie NaN
## Class: Sciences de gestion NaN
## Class: Sciences économiques NaN
## Class: Sociologie NaN
## Neg Pred Value
## Class: Chimie 0.9760342
## Class: Droit public 0.9867370
## Class: Histoire 0.9809621
## Class: Informatique 0.9648694
## Class: Médecine 0.9558028
## Class: Other NaN
## Class: Physique 0.9652159
## Class: Psychologie 0.9856590
## Class: Sciences appliquées 0.9833683
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.9829833
## Class: Sciences de gestion 0.9848505
## Class: Sciences économiques 0.9799419
## Class: Sociologie 0.9864867
## Precision
## Class: Chimie NA
## Class: Droit public NA
## Class: Histoire NA
## Class: Informatique NA
## Class: Médecine NA
## Class: Other 0.7329111
## Class: Physique NA
## Class: Psychologie NA
## Class: Sciences appliquées NA
## Class: Sciences biologiques et fondamentales appliquées. Psychologie NA
## Class: Sciences de gestion NA
## Class: Sciences économiques NA
## Class: Sociologie NA
## Recall
## Class: Chimie 0
## Class: Droit public 0
## Class: Histoire 0
## Class: Informatique 0
## Class: Médecine 0
## Class: Other 1
## Class: Physique 0
## Class: Psychologie 0
## Class: Sciences appliquées 0
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0
## Class: Sciences de gestion 0
## Class: Sciences économiques 0
## Class: Sociologie 0
## F1
## Class: Chimie NA
## Class: Droit public NA
## Class: Histoire NA
## Class: Informatique NA
## Class: Médecine NA
## Class: Other 0.8458727
## Class: Physique NA
## Class: Psychologie NA
## Class: Sciences appliquées NA
## Class: Sciences biologiques et fondamentales appliquées. Psychologie NA
## Class: Sciences de gestion NA
## Class: Sciences économiques NA
## Class: Sociologie NA
## Prevalence
## Class: Chimie 0.02396581
## Class: Droit public 0.01326301
## Class: Histoire 0.01903790
## Class: Informatique 0.03513061
## Class: Médecine 0.04419719
## Class: Other 0.73291112
## Class: Physique 0.03478412
## Class: Psychologie 0.01434099
## Class: Sciences appliquées 0.01663170
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.01701669
## Class: Sciences de gestion 0.01514947
## Class: Sciences économiques 0.02005813
## Class: Sociologie 0.01351325
## Detection Rate
## Class: Chimie 0.0000000
## Class: Droit public 0.0000000
## Class: Histoire 0.0000000
## Class: Informatique 0.0000000
## Class: Médecine 0.0000000
## Class: Other 0.7329111
## Class: Physique 0.0000000
## Class: Psychologie 0.0000000
## Class: Sciences appliquées 0.0000000
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.0000000
## Class: Sciences de gestion 0.0000000
## Class: Sciences économiques 0.0000000
## Class: Sociologie 0.0000000
## Detection Prevalence
## Class: Chimie 0
## Class: Droit public 0
## Class: Histoire 0
## Class: Informatique 0
## Class: Médecine 0
## Class: Other 1
## Class: Physique 0
## Class: Psychologie 0
## Class: Sciences appliquées 0
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0
## Class: Sciences de gestion 0
## Class: Sciences économiques 0
## Class: Sociologie 0
## Balanced Accuracy
## Class: Chimie 0.5
## Class: Droit public 0.5
## Class: Histoire 0.5
## Class: Informatique 0.5
## Class: Médecine 0.5
## Class: Other 0.5
## Class: Physique 0.5
## Class: Psychologie 0.5
## Class: Sciences appliquées 0.5
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.5
## Class: Sciences de gestion 0.5
## Class: Sciences économiques 0.5
## Class: Sociologie 0.5
##
## $mode
## [1] "sens_spec"
##
## $dots
## list()
##
## attr(,"class")
## [1] "confusionMatrix"
## $positive
## NULL
##
## $table
## Reference
## Prediction Chimie
## Chimie 764
## Droit public 1
## Histoire 1
## Informatique 10
## Médecine 7
## Other 113
## Physique 160
## Psychologie 1
## Sciences appliquées 108
## Sciences biologiques et fondamentales appliquées. Psychologie 80
## Sciences de gestion 0
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Droit public
## Chimie 0
## Droit public 263
## Histoire 8
## Informatique 0
## Médecine 3
## Other 368
## Physique 0
## Psychologie 2
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 7
## Sciences économiques 33
## Sociologie 5
## Reference
## Prediction Histoire
## Chimie 0
## Droit public 16
## Histoire 272
## Informatique 1
## Médecine 6
## Other 604
## Physique 0
## Psychologie 3
## Sciences appliquées 2
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 4
## Sciences économiques 26
## Sociologie 55
## Reference
## Prediction Informatique
## Chimie 3
## Droit public 1
## Histoire 0
## Informatique 1233
## Médecine 15
## Other 214
## Physique 16
## Psychologie 5
## Sciences appliquées 315
## Sciences biologiques et fondamentales appliquées. Psychologie 9
## Sciences de gestion 10
## Sciences économiques 2
## Sociologie 2
## Reference
## Prediction Médecine Other
## Chimie 5 1924
## Droit public 6 602
## Histoire 5 678
## Informatique 6 1775
## Médecine 1701 838
## Other 437 15703
## Physique 1 3093
## Psychologie 61 396
## Sciences appliquées 2 5548
## Sciences biologiques et fondamentales appliquées. Psychologie 60 5836
## Sciences de gestion 4 313
## Sciences économiques 5 546
## Sociologie 3 822
## Reference
## Prediction Physique
## Chimie 65
## Droit public 0
## Histoire 0
## Informatique 27
## Médecine 5
## Other 156
## Physique 1241
## Psychologie 0
## Sciences appliquées 286
## Sciences biologiques et fondamentales appliquées. Psychologie 26
## Sciences de gestion 0
## Sciences économiques 1
## Sociologie 0
## Reference
## Prediction Psychologie
## Chimie 5
## Droit public 2
## Histoire 3
## Informatique 21
## Médecine 31
## Other 359
## Physique 2
## Psychologie 254
## Sciences appliquées 1
## Sciences biologiques et fondamentales appliquées. Psychologie 17
## Sciences de gestion 9
## Sciences économiques 1
## Sociologie 40
## Reference
## Prediction Sciences appliquées
## Chimie 78
## Droit public 1
## Histoire 0
## Informatique 196
## Médecine 1
## Other 77
## Physique 135
## Psychologie 0
## Sciences appliquées 360
## Sciences biologiques et fondamentales appliquées. Psychologie 12
## Sciences de gestion 4
## Sciences économiques 0
## Sociologie 0
## Reference
## Prediction Sciences biologiques et fondamentales appliquées. Psychologie
## Chimie 45
## Droit public 1
## Histoire 0
## Informatique 5
## Médecine 2
## Other 139
## Physique 11
## Psychologie 0
## Sciences appliquées 25
## Sciences biologiques et fondamentales appliquées. Psychologie 650
## Sciences de gestion 0
## Sciences économiques 3
## Sociologie 3
## Reference
## Prediction Sciences de gestion
## Chimie 0
## Droit public 6
## Histoire 6
## Informatique 12
## Médecine 9
## Other 350
## Physique 0
## Psychologie 4
## Sciences appliquées 0
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 263
## Sciences économiques 112
## Sociologie 25
## Reference
## Prediction Sciences économiques
## Chimie 0
## Droit public 13
## Histoire 11
## Informatique 4
## Médecine 2
## Other 348
## Physique 0
## Psychologie 0
## Sciences appliquées 9
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 58
## Sciences économiques 562
## Sociologie 35
## Reference
## Prediction Sociologie
## Chimie 0
## Droit public 4
## Histoire 23
## Informatique 2
## Médecine 12
## Other 322
## Physique 0
## Psychologie 14
## Sciences appliquées 1
## Sciences biologiques et fondamentales appliquées. Psychologie 0
## Sciences de gestion 22
## Sciences économiques 22
## Sociologie 280
##
## $overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.4532522 0.2344341 0.4489645 0.4575451 0.7329111
## AccuracyPValue McnemarPValue
## 1.0000000 NaN
##
## $byClass
## Sensitivity
## Class: Chimie 0.6136546
## Class: Droit public 0.3817126
## Class: Histoire 0.2750253
## Class: Informatique 0.6756164
## Class: Médecine 0.7408537
## Class: Other 0.4124337
## Class: Physique 0.6867737
## Class: Psychologie 0.3409396
## Class: Sciences appliquées 0.4166667
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.7352941
## Class: Sciences de gestion 0.3341804
## Class: Sciences économiques 0.5393474
## Class: Sociologie 0.3988604
## Specificity
## Class: Chimie 0.9580901
## Class: Droit public 0.9872610
## Class: Histoire 0.9855769
## Class: Informatique 0.9589219
## Class: Médecine 0.9812499
## Class: Other 0.7486847
## Class: Physique 0.9318336
## Class: Psychologie 0.9905086
## Class: Sciences appliquées 0.8767349
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.8817194
## Class: Sciences de gestion 0.9915758
## Class: Sciences économiques 0.9852476
## Class: Sociologie 0.9806818
## Pos Pred Value
## Class: Chimie 0.26445137
## Class: Droit public 0.28711790
## Class: Histoire 0.27010924
## Class: Informatique 0.37454435
## Class: Médecine 0.64627660
## Class: Other 0.81829078
## Class: Physique 0.26636617
## Class: Psychologie 0.34324324
## Class: Sciences appliquées 0.05407841
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.09715994
## Class: Sciences de gestion 0.37896254
## Class: Sciences économiques 0.42802742
## Class: Sociologie 0.22047244
## Neg Pred Value
## Class: Chimie 0.9901957
## Class: Droit public 0.9916525
## Class: Histoire 0.9859252
## Class: Informatique 0.9878332
## Class: Médecine 0.9879352
## Class: Other 0.3171037
## Class: Physique 0.9880313
## Class: Psychologie 0.9904118
## Class: Sciences appliquées 0.9888722
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.9948298
## Class: Sciences de gestion 0.9897766
## Class: Sciences économiques 0.9905206
## Class: Sociologie 0.9916731
## Precision
## Class: Chimie 0.26445137
## Class: Droit public 0.28711790
## Class: Histoire 0.27010924
## Class: Informatique 0.37454435
## Class: Médecine 0.64627660
## Class: Other 0.81829078
## Class: Physique 0.26636617
## Class: Psychologie 0.34324324
## Class: Sciences appliquées 0.05407841
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.09715994
## Class: Sciences de gestion 0.37896254
## Class: Sciences économiques 0.42802742
## Class: Sociologie 0.22047244
## Recall
## Class: Chimie 0.6136546
## Class: Droit public 0.3817126
## Class: Histoire 0.2750253
## Class: Informatique 0.6756164
## Class: Médecine 0.7408537
## Class: Other 0.4124337
## Class: Physique 0.6867737
## Class: Psychologie 0.3409396
## Class: Sciences appliquées 0.4166667
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.7352941
## Class: Sciences de gestion 0.3341804
## Class: Sciences économiques 0.5393474
## Class: Sociologie 0.3988604
## F1
## Class: Chimie 0.36961780
## Class: Droit public 0.32772586
## Class: Histoire 0.27254509
## Class: Informatique 0.48192300
## Class: Médecine 0.69034091
## Class: Other 0.54844230
## Class: Physique 0.38385401
## Class: Psychologie 0.34208754
## Class: Sciences appliquées 0.09573195
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.17163982
## Class: Sciences de gestion 0.35516543
## Class: Sciences économiques 0.47728238
## Class: Sociologie 0.28397566
## Prevalence
## Class: Chimie 0.02396581
## Class: Droit public 0.01326301
## Class: Histoire 0.01903790
## Class: Informatique 0.03513061
## Class: Médecine 0.04419719
## Class: Other 0.73291112
## Class: Physique 0.03478412
## Class: Psychologie 0.01434099
## Class: Sciences appliquées 0.01663170
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.01701669
## Class: Sciences de gestion 0.01514947
## Class: Sciences économiques 0.02005813
## Class: Sociologie 0.01351325
## Detection Rate
## Class: Chimie 0.014706732
## Class: Droit public 0.005062658
## Class: Histoire 0.005235904
## Class: Informatique 0.023734817
## Class: Médecine 0.032743652
## Class: Other 0.302277233
## Class: Physique 0.023888814
## Class: Psychologie 0.004889411
## Class: Sciences appliquées 0.006929874
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.012512272
## Class: Sciences de gestion 0.005062658
## Class: Sciences économiques 0.010818303
## Class: Sociologie 0.005389902
## Detection Prevalence
## Class: Chimie 0.05561224
## Class: Droit public 0.01763268
## Class: Histoire 0.01938440
## Class: Informatique 0.06336984
## Class: Médecine 0.05066508
## Class: Other 0.36940076
## Class: Physique 0.08968411
## Class: Psychologie 0.01424474
## Class: Sciences appliquées 0.12814491
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.12878015
## Class: Sciences de gestion 0.01335926
## Class: Sciences économiques 0.02527479
## Class: Sociologie 0.02444705
## Balanced Accuracy
## Class: Chimie 0.7858724
## Class: Droit public 0.6844868
## Class: Histoire 0.6303011
## Class: Informatique 0.8172692
## Class: Médecine 0.8610518
## Class: Other 0.5805592
## Class: Physique 0.8093036
## Class: Psychologie 0.6657241
## Class: Sciences appliquées 0.6467008
## Class: Sciences biologiques et fondamentales appliquées. Psychologie 0.8085067
## Class: Sciences de gestion 0.6628781
## Class: Sciences économiques 0.7622975
## Class: Sociologie 0.6897711
##
## $mode
## [1] "sens_spec"
##
## $dots
## list()
##
## attr(,"class")
## [1] "confusionMatrix"
Analyse La matrice de confusion permet d’aller au-delà des métriques globales en identifiant où se concentrent les erreurs et quelles classes sont réellement séparables à partir du texte. En pratique, on s’attend à observer une diagonale plus marquée pour certains domaines dont le vocabulaire est très spécialisé (terminologie technique, noms de méthodes, objets d’étude), tandis que d’autres domaines sont davantage confondus car ils partagent un lexique transversal (par exemple des formulations méthodologiques communes, ou des mots scientifiques génériques). Dans notre cas, la présence d’une classe Other amplifie ce phénomène : comme elle regroupe de nombreux domaines hétérogènes, elle agit souvent comme une “zone refuge” où aboutissent des observations ambiguës, ce qui augmente mécaniquement certaines confusions (prédictions vers Other) et rend aussi plus difficile l’apprentissage d’une frontière nette pour Other (observations venant de Other qui “débordent” vers des classes spécifiques). Autrement dit, même si l’accuracy peut rester correcte, la matrice met en évidence que la difficulté principale n’est pas seulement de “bien prédire globalement”, mais de réduire les confusions entre classes proches et de limiter l’effet de la classe dominante/hétérogène sur les décisions du modèle, ce qui justifie le recours à des métriques macro et à une réduction discriminante visant à maximiser la séparabilité inter-classes.
3.5 Validation croisée (pipeline complet)
| k | max_features | svd_dim | laplace | n_used | acc_mean | acc_sd | f1_mean | f1_sd |
|---|---|---|---|---|---|---|---|---|
| 3 | 15000 | 120 | 1 | 30000 | 0.3395333 | 0.0138338 | 0.3586856 | 0.0205095 |
3.6 Optimisation bayésienne
| k | max_features | svd_dim | laplace | n_used | acc_mean | acc_sd | f1_mean | f1_sd |
|---|---|---|---|---|---|---|---|---|
| 5 | 9512 | 200 | 2 | 50000 | 0.42508 | 0.0052098 | 0.4508289 | 0.0056161 |
Interprétation La courbe d’optimisation montre souvent un schéma “progression puis plateau” : les premières itérations gagnent vite en score (on évite des zones de paramètres très mauvaises), puis les gains deviennent marginaux. Concrètement, ça soutient l’idée que les hyperparamètres (dimension SVD, taille vocabulaire, laplace) ont un sweet spot : trop petit → sous-représentation du signal ; trop grand → bruit / coût calcul / sur-ajustement.
3.7 Interprétabilité : facteurs discriminants (niveau mots)
| LD1 | LD2 | LD3 | LD4 | LD5 | LD6 | LD7 | LD8 | LD9 | LD10 | LD11 | LD12 | term |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| -30.958710 | -45.0714636 | -0.6952423 | 60.2176192 | -33.0454050 | -12.2548338 | 38.5903102 | -75.0767258 | 21.5880945 | 34.4710442 | -36.4005789 | 20.6091335 | aujourd |
| 30.626920 | 42.5625400 | -0.5051392 | -59.4889703 | 34.5832405 | 12.1768208 | -39.5140535 | 74.3342295 | -22.1742753 | -34.8479303 | 24.2474119 | -19.5503499 | hui |
| 8.419444 | -0.6574001 | -0.0568330 | -1.5568093 | -0.6996200 | -0.2863191 | 0.3000269 | 0.7102829 | 1.3928264 | -0.8309964 | -0.6050880 | 0.5643197 | actuel |
| 7.218876 | 3.6732305 | 0.8733340 | -0.5724106 | 0.3934558 | 0.6887872 | -5.2237953 | 1.7348969 | -2.6644948 | 0.0010554 | 2.7175491 | 0.5930328 | pouv |
| -6.583936 | 0.6430861 | 0.1344463 | 0.8353670 | 1.5272373 | 0.2469984 | -2.6141163 | 0.3200093 | -0.2034465 | 2.2141262 | 0.0189967 | -0.6821137 | autr |
| -6.548210 | -5.1182269 | 1.1285977 | -1.9137718 | 8.3449499 | 4.9670106 | 1.3871989 | -4.0397193 | -4.1097874 | -0.6870849 | 3.0549933 | 2.0485540 | montrent |
| -6.387646 | 2.3814367 | 5.6433606 | 1.6439387 | -1.3450809 | 1.1601878 | 1.5700422 | 0.1727976 | 8.0805174 | -4.3590996 | 3.6680710 | -0.8431283 | frequent |
| 6.362124 | -0.2714438 | -0.1530938 | -0.6710366 | -0.1307736 | -0.6092733 | 0.5010875 | 0.5069628 | -1.7870856 | 0.4647806 | -1.0138668 | -0.7206266 | remplac |
| 6.332868 | 0.5604722 | 0.3280073 | -0.9953895 | -0.1919699 | 0.2637032 | 0.3948775 | -0.1653860 | 0.7633656 | 0.2458439 | -0.9299472 | -0.1424806 | centr |
| -6.323398 | -3.6966145 | -1.7695250 | -4.0791421 | 7.3314407 | -0.9327791 | 0.0764626 | 4.0057864 | 9.2174589 | 3.8965627 | 3.6938166 | -8.5228813 | longitudinal |
| 6.166221 | -0.9699038 | 3.2235855 | 1.8840311 | -1.3064574 | 5.4862007 | 0.7396553 | -3.0299361 | -0.0302166 | -4.3578971 | 2.3411042 | 0.9296211 | heur |
| 6.110718 | -4.8432428 | 0.6172367 | 1.6171727 | -0.9616727 | -4.1362041 | 2.5989034 | 0.7790798 | 1.0779514 | -0.5727799 | 4.0649542 | 4.2952940 | favor |
| 5.909816 | -2.0898349 | 0.4223363 | 0.0404507 | 3.5941920 | -0.4032795 | -2.5680188 | -2.9483480 | 4.3839593 | -3.3148014 | -2.6427421 | 0.1889595 | traite |
| 5.863757 | 0.9879755 | 0.2516254 | 0.0986484 | -1.7337535 | -0.4300299 | -0.5329120 | 0.0227568 | -0.8158108 | 0.9269578 | 0.2424770 | -0.2730705 | propos |
| 5.772165 | 1.2362991 | 0.4289903 | 1.0726787 | -1.3819771 | -0.3704916 | -0.5684872 | 0.9855760 | 0.3394751 | 2.2501119 | 0.6890126 | 0.6726344 | milieu |
| -5.743521 | -5.1231235 | -0.4829735 | -1.7822405 | 6.4934582 | -3.2989596 | -0.2626182 | 3.6088791 | 4.0808462 | 1.3292295 | 2.1474146 | 0.0200625 | suggerent |
| 5.727547 | 3.2171839 | 7.5873646 | 0.1509687 | -1.4145237 | -1.1760034 | -1.6485728 | -3.4969608 | -1.5535934 | 0.9478875 | 2.3538895 | -3.2215438 | partag |
| 5.639362 | -2.4237590 | -1.3058236 | 3.1284458 | 3.7998231 | 0.0283765 | 0.4702507 | 1.0648028 | 0.7302129 | 0.7903956 | -12.0244346 | 2.6379295 | rel |
| -5.603958 | -1.8333028 | 0.0286350 | 4.0097795 | -0.3580573 | 3.1969102 | -2.3154916 | -1.9882517 | 1.0918479 | -2.3662396 | -0.4544496 | -2.1060660 | principal |
| -5.482582 | 4.1198419 | -4.4699987 | -5.0799343 | -4.3540061 | 5.6333459 | 11.5251256 | 0.0009268 | -4.1085328 | -2.1690425 | -1.9296346 | -0.5058197 | suivr |
| -5.380293 | -3.1313793 | 0.5145366 | 0.0449241 | 1.1028374 | 1.3492293 | -1.3105161 | 1.9446243 | -1.4687158 | -5.2070922 | -2.3595604 | 3.2206105 | montr |
| 5.325267 | -1.7443302 | 0.1974427 | 1.2231323 | 0.4891379 | 1.5785598 | -0.2216874 | 0.2580721 | -0.4689300 | -1.2392779 | -0.2107020 | 0.7499375 | enzymat |
| 5.321808 | 2.1471714 | 5.1552260 | 1.3710214 | 1.6925647 | -4.6888024 | 0.1127577 | -2.3943528 | 1.0324853 | 0.7554569 | 0.0766480 | -7.5734096 | noeud |
| -5.281311 | -0.3334689 | -3.9329956 | 2.4150944 | 7.0072743 | 0.8909368 | 1.0527947 | -1.5050151 | -5.2127219 | 4.8597568 | 6.0540339 | -5.1131391 | inclu |
| 5.188278 | -0.4130198 | -0.1723156 | -0.0262263 | -2.2623094 | 0.2112885 | 1.8763001 | 0.0643904 | 1.7627073 | -1.0499809 | -4.9112353 | 1.8341676 | enquet |
| 5.083747 | 2.3834022 | 1.2696006 | -3.5644173 | -2.6145530 | 1.1805877 | -1.0669204 | -0.2565509 | -1.4857625 | -0.4645438 | -0.5592051 | 10.0702129 | effectue |
| 5.012049 | -0.0298012 | 1.1733684 | -1.1528505 | -3.1656015 | -1.2910999 | -0.2517501 | -1.4263162 | 1.7426816 | 1.9243019 | -0.0240368 | -0.9662180 | abord |
| -4.958738 | -7.3402820 | 0.4172401 | -0.2507321 | -0.3210058 | 0.9308925 | -1.7233783 | 2.9482613 | -1.0258888 | -0.7661724 | 0.9291651 | 0.6874374 | import |
| 4.868030 | 0.3801835 | 0.6299292 | 0.2712549 | -0.8248461 | 1.0097388 | -0.0549016 | 0.7955303 | 0.1400106 | -0.1571684 | -0.8146785 | 0.3289628 | doctorat |
| -4.799897 | -1.1268490 | 4.7773539 | 3.5494873 | 1.3330265 | -4.4504383 | 0.9034159 | 3.5519608 | 4.8383920 | 2.0138937 | -1.6065015 | -5.0856789 | plusieur |
Analyse L’analyse des facteurs discriminants au niveau des mots (via les coefficients associés aux axes discriminants, par exemple LD1) fournit une lecture interprétable de ce que “voit” la projection supervisée. Les termes ayant les plus grands coefficients en valeur absolue sont ceux qui contribuent le plus à positionner les documents le long de l’axe : ils constituent donc des marqueurs lexicaux qui structurent la séparation induite par la LDA discriminante (après réduction SVD). Il faut toutefois interpréter ces résultats avec nuance : le signe du coefficient (+/−) indique seulement un côté de l’axe et ne correspond pas à une notion de “bon” ou “mauvais”, et surtout, dans un cadre multi-classes, LD1 ne correspond pas à une opposition simple entre deux domaines mais à un compromis global qui maximise la séparation entre plusieurs groupes à la fois. Lorsque les mots dominants sont clairement techniques ou disciplinaires, cela suggère que l’axe capture de l’information sémantique pertinente (terminologie propre à certains champs), ce qui soutient l’idée que le texte contient un signal discriminant. À l’inverse, si certains termes apparaissent très génériques (ou liés au style rédactionnel), cela peut révéler une séparation partiellement portée par des facteurs moins informatifs (formules récurrentes, vocabulaire “académique” commun), ce qui rejoint la difficulté à distinguer des domaines proches et l’hétérogénéité de la classe Other. Dans l’ensemble, cette analyse complète utilement les performances : elle aide à expliquer pourquoi certaines classes sont mieux reconnues que d’autres et donne des pistes d’amélioration (filtrage lexical, n-grams, ajout de features sémantiques comme les topics) pour renforcer la séparation sur les dimensions réellement discriminantes.
4 Discussion
4.0.1 4. Discussion
4.1 Baseline vs modèle
La baseline “classe majoritaire” illustre bien un piège classique en classification déséquilibrée : elle peut obtenir une accuracy artificiellement correcte dès lors que la classe dominante (souvent Other) représente une proportion importante du jeu de test. En revanche, cette stratégie échoue à reconnaître les classes minoritaires, ce qui se traduit par une macro-F1 faible et une matrice de confusion typiquement très concentrée sur une prédiction répétée de la classe majoritaire. À l’inverse, le modèle SVD + LDA discriminante + Naive Bayes cherche à exploiter le signal lexical contenu dans les textes en construisant d’abord une représentation TF-IDF, puis en compressant l’espace (SVD) avant d’appliquer une projection supervisée (axes discriminants) qui maximise la séparabilité inter-classes. Les gains attendus ne se limitent pas à une métrique globale : ils se lisent surtout dans une meilleure répartition des prédictions entre classes, avec une diagonale de la matrice de confusion plus marquée pour les domaines disposant d’une terminologie plus spécifique, et une réduction relative des erreurs systématiques liées à une prédiction “par défaut” de la classe dominante.
4.2 Déséquilibre et classe “Other”
La baseline “classe majoritaire” illustre bien un piège classique en classification déséquilibrée : elle peut obtenir une accuracy artificiellement correcte dès lors que la classe dominante (souvent Other) représente une proportion importante du jeu de test. En revanche, cette stratégie échoue à reconnaître les classes minoritaires, ce qui se traduit par une macro-F1 faible et une matrice de confusion typiquement très concentrée sur une prédiction répétée de la classe majoritaire. À l’inverse, le modèle SVD + LDA discriminante + Naive Bayes cherche à exploiter le signal lexical contenu dans les textes en construisant d’abord une représentation TF-IDF, puis en compressant l’espace (SVD) avant d’appliquer une projection supervisée (axes discriminants) qui maximise la séparabilité inter-classes. Les gains attendus ne se limitent pas à une métrique globale : ils se lisent surtout dans une meilleure répartition des prédictions entre classes, avec une diagonale de la matrice de confusion plus marquée pour les domaines disposant d’une terminologie plus spécifique, et une réduction relative des erreurs systématiques liées à une prédiction “par défaut” de la classe dominante.
4.3 Limites
Plusieurs limites doivent être notées. D’abord, le coût de calcul est non négligeable : TF-IDF sur de grands corpus, SVD tronquée et certaines étapes d’analyse peuvent devenir lourdes, ce qui impose des choix pratiques de sous-échantillonnage et de limitation du vocabulaire. Ensuite, la LDA discriminante repose sur des hypothèses (structure des distributions après projection) qui ne sont pas toujours parfaitement adaptées à des données textuelles, même après compression SVD, ce qui peut expliquer une séparation incomplète entre classes proches. Enfin, les performances dépendent fortement des hyperparamètres et des choix de pipeline (taille du vocabulaire, dimension SVD, seuils de regroupement, part de Other), d’où l’intérêt de la validation croisée et, si activée, d’une optimisation plus efficace (BayesOpt) pour stabiliser le compromis qualité/coût.
5 Conclusion
5.0.1 5. Conclusion
Ce mini-projet met en place une chaîne complète et cohérente pour la classification de textes de thèses : prétraitement NLP et représentation TF-IDF, analyse qualitative par topic modeling, réduction de dimension (SVD puis LDA discriminante), classification bayésienne (Naive Bayes), et évaluation via des métriques adaptées au multi-classe déséquilibré. Les résultats soulignent l’importance de ne pas se limiter à l’accuracy : la macro-F1 et la matrice de confusion montrent plus finement la capacité du modèle à reconnaître les classes minoritaires et à limiter l’effet “aspirateur” de la classe Other. Enfin, l’étude des facteurs discriminants fournit une couche d’interprétabilité utile pour relier les performances observées au contenu lexical réellement exploité par la projection discriminante.
6 Ressources supplémentaires
6.0.1 6. Ressources supplémentaires
- Code complet : RMarkdown du pipeline (script principal).
- Outputs attendus dans
outputs/:metrics_baseline_majority.csv,metrics_lda_nb.csvcv_results_pipeline.csvbayesopt_history.csv,cv_best_bayesopt.csvtopics_top_terms_20000.csvtop_discriminant_words_LD1.csv
- Figures attendues dans
outputs/figs/:class_distribution.png,text_length_hist.pngtopics_top_terms.pnglda_discriminant_scatter_test.pngtop_discriminant_words_LD1.png