2025-03-01 : feuille de route 2025 - mars

site web : sdpython.github.io

Apprendre la programmation avec Python

Séance 1 (31/1)

Un jeu de données :

Quatre thèmes

  • Deux types de problèmes : régression, classifications

  • Problèmes dérivés : ranking, clustering, série temporelles

  • Calculs, puissances de calculs, CUDA, CPU

  • Environnement de travail, coder avec un LLM en local, 2025-01-31 : local LLM, avenir du datascientiste

Autres notes

Séance 2 (7/2)

Séance 3 (14/2)

un peu plus de code

  • pipelines

  • créer son propre estimateur

  • tests unitaires

Pour cette séance, on souhaite construire un estimateur qui estime une régression linéaire à coefficients positifs, une autre avec des coefficients uniquement négatifs puis pour finir une dernière régression linéaire qui considère les deux premières comme features.

Une régression linéaire minimise l’erreur \sum_i \left\Vert X_i\theta - y_i \right\Vert^2. Le gradient est \sum_i X_i'\left( X_i\theta - y_i \right).

Comme le modèle souhaité est équivalent à une optimisation sous contrainte, on propose de le résoudre comme ceci :

  • On applique une itération de l’algorithme de la descente de gradient : \theta_{t+1} = \theta_t - \epsilon_t \sum_i X_i'\left( X_i\theta - y_i \right).

  • On ne garde que les coefficients positifs : \theta_{t+1} = \max(0, \theta_t).

  • On retourne à l’étape 1 ou on s’arrête si l’algorithme a convergé.

On appliquera cela au jeu de données sklearn.datasets.load_diabetes() ou Wine Quality on comparera à une simple régression linéaire, les coefficients sont-ils équivalents ? Comment comparer les modèles ?

Séance 4 (21/2)

  • prétraitements

  • anomalie

  • cartes

  • clustering

Cartes

Réseaux de neurones

Anomalies

Clustering

Prétraitement

Pour la suite, on souhaite comparer ces approches sur un jeu accessible depuis le package datasets. Large Movie Review Dataset

from datasets import load_dataset

dataset = load_dataset("stanfordnlp/imdb", split="train")

print(dataset)
Dataset({
    features: ['text', 'label'],
    num_rows: 25000
})

Séance 5 (6/3)

Régression, Classification linéaires

statsmodels pour obtenir le résultat de tests de nullité des coefficients

Interprétabilité

séries temporelles

Foundation Models for Time Series Analysis: A Tutorial and Survey

Le modèle de référence est statsmodels

sktime propose une API plus proche de scikit-learn et d’autres modèles comme le clusting ou la segmentation de séries temporelles.

prophet fait aussi de la prédiction et contient aussi des algorithmes de détection de changement de régime, il contient une bonne base de jours fériés.

pyflux permet d’estimer des modules GARCH.

Analyse de survie

Deep Learning

Evaluation

  • https://defis.data.gouv.fr/

  • le projet doit inclure au moins un graphe Partial Dependence ou Permutation Importance (voir liens ci-dessus)

  • soutenance 11 avril 9h-13h