Découvrir les notebooks ML pour la science des matériaux
GitLab : Formation ML
Accéder aux notebooks et aux instructions
Des notebooks pédagogiques pour découvrir, étape par étape, comment appliquer des méthodes de ML aux données matériaux.
Ces notebooks constituent un support de formation (version 1.0). Ils illustrent un enchaînement pratique, de la compréhension des données expérimentales à la construction de modèles prédictifs, jusqu’à l’exploration d’approches plus avancées. Ils sont conçus comme un point de départ, à adapter à vos propres données matériaux. Les résultats dépendent de la qualité et de la taille du jeu de données, et les choix présentés sont des repères plutôt que des règles universelles.
La plupart des notebooks contiennent les explications et les consignes nécessaires pour comprendre et exécuter l’enchaînement proposé. Vous pouvez les suivre comme un parcours complet, ou ouvrir directement un notebook particulier si une étape ou une méthode vous intéresse.
L’enchaînement global est illustré ci-dessous. Les premières étapes portent sur la qualité et la compréhension des données ; les branches suivantes introduisent la prédiction, la réutilisation de modèles, la découverte causale et l’optimisation bayésienne. Les cases bleues sont les étapes de l’enchaînement et les cases jaunes les applications. Le schéma fait aussi apparaître une étape optionnelle d’augmentation de données, qui n’est pas traitée dans ce guide.

Un parcours possible
- Profiler les données pour comprendre leurs caractéristiques et repérer d’éventuels problèmes de qualité.
- Prétraiter les données en identifiant les valeurs manquantes, les doublons et les valeurs aberrantes, puis exporter un jeu de données traité.
- Analyser la structure des données, ou prédire une propriété d’un matériau à l’aide d’un modèle.
- Aller plus loin avec le cas des nanocristaux de CdSe : exploration de modèles, découverte causale et optimisation des expériences.
Les notebooks peuvent être suivis dans cet ordre, mais ils sont aussi conçus pour être utiles indépendamment. Vous pouvez aller directement au notebook qui correspond à la question que vous souhaitez explorer. Le notebook d’index (notebooks/index.ipynb) renvoie vers les principaux notebooks.
Avant de commencer
Il vous faut l’un des éléments suivants : Apptainer, Docker, ou Python 3.10+ avec uv et Graphviz. Les instructions détaillées sont disponibles dans le dépôt du tutoriel.
Qualité des données
Première étape : vérifier la qualité du jeu de données de départ.
Données manquantes et valeurs aberrantes
Notebook : preprocessing.ipynb
Ce notebook aide à repérer les problèmes de qualité des données avant toute analyse ou modélisation.

Étapes :
- Profiler le jeu de données : dimensions, colonnes vides, colonnes comportant des valeurs manquantes et leur pourcentage, doublons, type et nombre de valeurs distinctes de chaque colonne.
- Attribuer un traitement à chaque variable (numérique, catégorielle, identifiant, cible, ou retirée du jeu de données, par exemple si elle est trop incomplète), et choisir de supprimer ou non les lignes dupliquées.
- Détecter les valeurs aberrantes avec des boîtes à moustaches (bornes à 1,5 fois l’écart interquartile) et avec le Z-score : un seuil ajustable affiche, sur deux variables de votre choix, les points signalés et la liste des lignes concernées.
- Exporter un CSV traité, en décidant à ce moment-là de supprimer ou non les lignes aberrantes. Rien n’est supprimé avant cette étape.
Une valeur aberrante n’est pas forcément une erreur
Une valeur aberrante n’est pas nécessairement une erreur : il peut s’agir d’une mesure réelle. Examinez les lignes signalées avant de décider de les retirer.
Explorer et comprendre
Se faire une première idée de la structure des données, sans chercher à prédire une cible.
Explorer et regrouper les données
Notebook : analysis.ipynb
Une introduction à quelques méthodes non supervisées : corrélations, réduction de dimension et clustering.

Étapes :
Profiler le jeu de données.
Calculer les corrélations et les lire sur la carte de chaleur.

Réduire la dimension avec une analyse en composantes principales (ACP) : suivre la variance expliquée cumulée et choisir le nombre de composantes selon un seuil, par exemple 90 ou 95 %.
Essayer une méthode de clustering (K-Means, agglomératif ou DBSCAN) et ajuster ses hyperparamètres.
Projeter les groupes, comparer leurs centres, puis exporter les données avec une colonne d’identifiant de cluster.
Exemple. Remarquer que deux variables fortement corrélées portent presque la même information, puis vérifier avec l’ACP si quelques composantes suffisent à représenter le jeu de données.
Les clusters dépendent de la méthode
Les clusters dépendent de la méthode et de ses réglages : comparez plusieurs méthodes plutôt que de considérer un résultat comme définitif.
Prédire une propriété
Relier une variable cible à des variables explicatives, ou réutiliser un modèle déjà sauvegardé.
Construire et comparer des modèles de régression
Notebook : modeling_all.ipynb
Un guide pour prédire une variable continue avec plusieurs algorithmes et comparer leurs résultats. Chaque algorithme est accompagné d’indications sur les cas où l’envisager.

Étapes :
- Charger les données, attribuer les rôles et choisir la cible.
- Séparer un jeu d’entraînement et un jeu de test.
- Choisir les algorithmes selon la nature des données : XGBoost, arbre de décision, SVR, Ridge, Lasso. Ajuster leurs hyperparamètres.
- Évaluer avec MAE, MSE, RMSE, R² et MAPE, et lire le nuage de points prédictions contre valeurs réelles ainsi que la distribution des erreurs.
- Exporter les modèles retenus.
Exemple. Sur un jeu de données où la relation semble linéaire et les variables corrélées, comparer Ridge ou Lasso avec XGBoost. L’export peut être nommé par version et par jeu de données, par exemple models_V01_metallic_glass.
Le choix du modèle reste empirique
Le choix d’un modèle reste une comparaison empirique : les indications données sont des repères.
Examiner XGBoost de plus près
Notebook : modeling_xgboost.ipynb
Un examen plus détaillé de XGBoost, qui construit des arbres en séquence, chacun corrigeant les erreurs des précédents, afin de comprendre l’effet de ses réglages.

Étapes :
- Configurer le jeu de données et la séparation entraînement/test.
- Régler les hyperparamètres : nombre d’arbres (typiquement 100 à 500), taux d’apprentissage (0,1 à 0,3), profondeur maximale (3 à 10).
- Entraîner et évaluer sur les données d’entraînement et de test.
- Examiner l’importance des variables (weight, gain, cover, permutation) ainsi que quelques arbres individuels.
- Lancer une recherche par grille et comparer avec le modèle par défaut.
- Exporter le modèle.
Exemple. Comparer les métriques du modèle par défaut et du modèle optimisé pour juger si la recherche par grille apporte un gain notable sur votre jeu de données.
Limitation de plateforme
La recherche par grille de XGBoost n’est pas prise en charge sous Windows en mode local.
Utiliser un modèle pré-entraîné
Notebook : modeling_prediction.ipynb
Montre comment réutiliser un modèle sauvegardé au format .pkl sur de nouvelles données, sans réentraînement.
Étapes :
- Charger le modèle (
.pkl). - Charger un jeu de données qui fournit les mêmes variables d’entrée que le modèle.
- Lancer la prédiction et examiner le graphique des valeurs prédites.
- Si le jeu de données contient la cible, comparer prédictions et valeurs réelles avec les métriques de régression.
- Sauvegarder le jeu de données avec la colonne des prédictions.
Exemple. Appliquer un modèle exporté depuis un notebook de modélisation à un nouveau lot d’échantillons, en vérifiant que ses variables d’entrée correspondent.
Applications : nanocristaux de CdSe
Des notebooks qui illustrent des approches plus avancées sur un cas concret. Ce sont des exemples de démarche, à transposer à vos propres systèmes. Le réentraînement des modèles est possible mais optionnel, et il est décrit à la fin de cette section.
Les données. Chaque échantillon relie des paramètres de synthèse à une réponse optique.
- Entrées :
T_external(température extérieure),Cd_mMetSe_mM(concentrations des précurseurs),OA_Cd_ratio(rapport ligand/métal),T_reactor(température de croissance),t_s(temps de réaction). - Sorties :
Peak_nm(pic d’émission, lié à la taille moyenne),FWHM_nm(largeur spectrale, liée à l’uniformité) etheight(intensité).
Explorer le modèle appris
Notebook : Use_Learned_Model.ipynb
Charge des modèles pré-entraînés et propose une interface pour explorer leurs prédictions.
Étapes :
- Charger les données et les deux modèles (forêt aléatoire, processus gaussien avec ses normalisations).
- Choisir le modèle dans le menu.
- Régler les six paramètres de synthèse avec les curseurs ou les champs numériques.
- Lire le pic, la largeur et l’intensité prédits, ainsi que le spectre reconstruit sous forme de gaussienne.
Exemple. Fixer une combinaison de paramètres, prédire avec la forêt aléatoire puis avec le processus gaussien, et comparer les deux spectres.

Découvrir des relations causales
Notebook : Causal_Discovery_Force.ipynb
Une démonstration de découverte causale avec l’algorithme PC (Peter–Clark), à partir de données observationnelles.

Étapes :
- Charger les données (
CdSe_PL.csvpar défaut). - Étiqueter les variables : entrées, cibles ou ignorées. Sans action de votre part, les entrées par défaut sont les six paramètres de synthèse et les sorties sont le pic, la largeur et l’intensité.
- Sous-échantillonner le jeu de données, avec une graine fixée pour la reproductibilité.
- Définir vos connaissances a priori : une propriété ne peut pas influencer un paramètre de synthèse, les paramètres sont supposés indépendants entre eux, et les propriétés ne s’influencent pas mutuellement.
- Choisir le test d’indépendance, Fisher Z (linéaire) ou KCI (non linéaire), et exécuter l’algorithme avec un seuil de 0,05.
- Lire le graphe : l’épaisseur d’une arête suit sa force, sa couleur suit sa significativité, avec la p-valeur de chaque lien.
Exemple. Comparer les graphes obtenus avec Fisher Z et avec KCI pour voir quels liens dépendent de l’hypothèse de linéarité.
Un graphe est une hypothèse
Un graphe obtenu à partir de données observationnelles est une hypothèse à confronter aux connaissances du domaine, et non une preuve de causalité.
Optimiser les expériences par optimisation bayésienne
Notebook : Bayesian_Optimization_interactive_short.ipynb
Illustre le principe de l’optimisation bayésienne : un processus gaussien propose les prochaines conditions à tester et se met à jour avec les mesures. Il se prête aussi bien à l’enseignement qu’à l’expérimentation.

Étapes :
- Choisir un fichier CSV, puis sélectionner les variables d’entrée et la cible.
- Définir, à l’aide des curseurs, les bornes de chaque variable : les propositions restent à l’intérieur de ces bornes.
- Entraîner le processus gaussien et examiner ses prédictions avec la bande d’incertitude à ±1σ.
- Choisir l’objectif (maximiser, minimiser ou atteindre une valeur) et ajuster le compromis entre exploration et exploitation.
- Demander un point, saisir la mesure obtenue, valider, puis recommencer.
- Suivre l’historique et la courbe de convergence.
Optionnel : réentraîner les modèles
Notebook : Learn_Models_RF_GP.ipynb
Explorer le modèle appris utilise des modèles déjà entraînés. Si vous souhaitez comprendre comment ils sont construits, ou les reconstruire, ce notebook entraîne une forêt aléatoire multi-sorties et un processus gaussien à noyau de Matérn sur les données CdSe, puis sauvegarde les modèles avec leurs normalisations. Il n’est pas nécessaire pour suivre le reste.