2024-03-01 : feuille de route 2024¶
Séance 1 (26/1)¶
site web : sdpython.github.io
programmation (python numpy, pandas, matplotlib, jupyter)
Tests unitaires, package python
machine learning, scikit-learn, pytorch
évaluation, ROC, \(R^2\)
ranking, clustering
Séance 2 (2/2)¶
arbre de régression, arbre de classification
random forest, boosting trees (xgboost, lightgtbm, catboost), RandomForest, Overfitting
Gradient Boosting, Gradient Boosting et Learning Rate avec les Random Forest
Régression Linéaire et contraintes sur les coefficients, Ridge, Lasso, ElasticNet, Ridge, Lasso, mathématiques
Notion de pipeline ou comment intégrer les prétraitements dans le modèle
prétraitements : tout convertir en numérique, données numériques, catégorielles, textuelles
un jeu de données : load_diabetes
Séance 3 (8/2)¶
Notion de pipeline ou comment intégrer les prétraitements dans le modèle
prétraitements : tout convertir en numérique, données numériques, catégorielles, textuelles
Séance 4 (16/2)¶
créer son propre estimateur
grille de recherche
traitement des valeurs manquantes
valeurs manquantes, gradient, méthodes ensemblistes
réseau de neurones : algorithme de rétro-propagation
cartes avec geopandas
interprétabilité, « Why Should I Trust You? » » Explaining the Predictions of Any Classifier, LIME, SHAP Partial Dependence Plot
machine learning éthique, Latanya Sweeney: How technology impacts humans and dictates our civic future, Equality of Opportunity in Supervised Learning
Séance 5 (23/2)¶
séries temporelles, décomposition, Holt Winters, détection des changements de régime, Filtre de Kalman, SSA
packages prophet, statsmodels, ruptures, tslearn,
analyse de survie
anomalies
recommandations NMF
ranking
pytorch
Projets¶
Un sujet parmi deux.
Sujet 1
Ecrire un notebook ou un script qui construit pour n’importe quel problème de classification binaire une première solution et des premiers résultats.
Ce notebook ou script doit détecter automatiquement les variables numériques, catégorielles et textuelles et appliquer le prétraitement appropriée, puis caler quelques modèles.
L’idée est de construire une première baseline pour savoir si le problème est plus ou moins compliqué. On pourra notamment comparer le taux de bonne prédiciton à la proportion de de chaque classe.
Sujet 2
Une fois un modèle de machine learning appris, on veut écrire un notebook ou un script qui indique pour chaque observation et chaque variable, la variation à appliquer sur cette variable, et sans changer les autres, pour faire basculer le modèle de l’autre côté.
Si le modèle dépend de deux variables X1 et X2, X1 est numérique et X2 catégorielle. On se pose la question de savoir comment changer X1 pour changer le résultat du modèle, ou si le modèle répond toujours la même classe quelle que soit la catégorie X2.
L’idée est de comprendre si le modèle est localement sensible à une variable.
Contraintes
Un oral de 20 minutes le 5 avril, 10 minutes de présentation, 10 minutes de questions
Rendre son code le 2 avril avant minuit
Par groupe de 3
Le script ou notebook devra inclure un pipeline, un test unitaire, un graphe.
Chaque notebook devra être évalué sur deux jeu de données au choix.
Le test unitaire est une fonction que le notebook ou le script retourne toujours la même chose sur un jeu de données très simple car ce qu’on veut obtenir sur ce jeu de données est connu à l’avance.
Par exemple, si on a deux variables X1, X2 et une classe à apprendre qui vaut 1 si X1 > 5, 0 sinon. Le notebook du premier sujet doit répondre que le sujet est facile et la performance est de 100% de bonne classification. Le notebook du second sujet doit dire que la prédiction ne dépend pas de la variable X2.