Contexte
School of Statistics (SOS) est une plateforme éducative proposant des visualisations interactives exécutées directement dans le navigateur, conçues pour rendre accessibles les concepts fondamentaux des statistiques et de l’apprentissage automatique (machine learning). Elle permet aux utilisateurs d’expérimenter visuellement avec des formules mathématiques et des algorithmes, sans nécessiter d’installation locale ni de serveur applicatif.
Objectif
Les concepts de statistiques et d’apprentissage automatique sont souvent présentés sous forme de formules abstraites ou de graphiques statiques, complexes à appréhender pour les étudiants, mentors ou professionnels non spécialistes. Les outils pédagogiques traditionnels requièrent généralement la configuration d’environnements de développement (tels que Python ou R) ou le déploiement de serveurs complexes, ce qui freine une expérimentation visuelle rapide. Par ailleurs, concevoir des outils graphiques fluides, réactifs et pleinement accessibles directement sur le web représente un défi technique d’implémentation frontend significatif.
Approche
Pour répondre à ces problématiques, la plateforme est conçue comme une application web statique (client-side) développée en TypeScript avec des outils de build modernes. L’intégralité des calculs et de l’affichage s’exécute dans le navigateur de l’utilisateur, supprimant toute dépendance à un serveur et garantissant une confidentialité et une instantanéité des calculs.
- Calculs côté client : Toutes les opérations mathématiques, la génération de jeux de données synthétiques et les simulations algorithmiques sont opérées directement par le navigateur via des modules mathématiques optimisés.
- Visualisations interactives : Des graphiques haute performance sont générés à l’aide de
Chart.jsetD3.js, prenant en charge le glisser-déposer de points, la manipulation en temps réel de paramètres et un retour visuel instantané. - Accessibilité et ergonomie : L’utilisation d’éléments HTML sémantiques, l’intégration d’un mode sombre cyclique et une navigation entièrement gérable au clavier garantissent la conformité avec les standards d’accessibilité web (WCAG 2.1).
Fonctionnalités
- Classification directe : Visualisation dynamique d’un classificateur bayésien naïf gaussien (Gaussian Naive Bayes) sur des données synthétiques 2D. L’utilisateur peut ajuster la séparation et la dispersion des classes pour observer instantanément l’impact sur la courbe ROC (Receiver Operating Characteristic), l’AUC (Area Under the Curve), la matrice de confusion et les métriques usuelles (exactitude, précision, rappel, spécificité, score F1).
- Classification inverse : Simulateur interactif permettant de modifier directement les valeurs de la matrice de confusion (vrais positifs, faux positifs, vrais négatifs, faux négatifs) afin de comprendre leur influence sur les métriques globales et sur la distribution théorique des scores associés.
- Séparateur à vaste marge (SVM) : Espaces d’expérimentation illustrant la classification par SVM, la maximisation de la marge et la sensibilité de la frontière de décision lors de l’ajustement du paramètre de régularisation $C$.
- Régression linéaire et polynomiale : Canevas interactif permettant de placer et déplacer des points à la souris, ajustant automatiquement des modèles de régression polynomiale de degrés 1 à 10. Les intervalles de confiance, les résidus et le coefficient de détermination ($R^2$) sont affichés en temps réel.
- Transformation de Fourier : Composition de signaux complexes à partir de quatre ondes sinusoïdales paramétrables en fréquence, amplitude et phase. L’outil génère l’affichage instantané du signal temporel, du spectre d’amplitude et du spectre de phase.
- Autres ateliers : Visualisation de l’algorithme des k plus proches voisins (k-NN), analyse du chemin des coefficients pour les régularisations Ridge et Lasso, et étapes de projection de l’analyse en composantes principales (ACP / PCA).
Résultats
Le projet offre un hub d’apprentissage complet, robuste et autonome.
- Performance optimale : Fonctionne sans aucune infrastructure serveur, effectuant des calculs d’algèbre linéaire et de traitement du signal complexes directement sur la machine de l’utilisateur.
- Fiabilité et qualité du code : Un haut niveau de robustesse est assuré par un pipeline d’intégration continue (CI) strict (ESLint, Prettier, TypeScript) et une couverture de tests unitaires supérieure à 95 % sur les modules mathématiques centraux.
- Parcours utilisateur fluide : Un tableau de bord unifié intègre une recherche instantanée, un filtrage par catégorie (classification, régression, optimisation, traitement du signal) et des parcours d’apprentissage guidés pour faciliter l’auto-formation.


