.. blogpost::
:title: Plan des séances
:keywords: plan
:date: 2021-01-28
:categories: session
Voici le plan prévu pour les cinq séances
du cours de machine learning pour l'économie et
la finance.
**Séance 1**
* `Python `_,
`Anaconda `_,
:epkg:`pandas`, :epkg:`numpy`, :epkg:`jupyter`,
:epkg:`matplotlib`
* Ressource `www.xavierdupre.fr `_
* `Source de données `_
* :epkg:`scikit-learn`
* :ref:`l-regclass`, multi-classification
* `métriques `_
* `Imbalanced problem `_
* Courbe ROC, AUC, voir :ref:`winescolorrocrst`,
`Courbe ROC `_,
`graphe erreur ROC `_
* `Ridge, Lasso `_
* Decision Tree,
`Arbres de décision / Random Forest
`_,
`Prédiction d'une durée
`_
**Séance 2**
* `Valeurs manquantes (cheatsheet) `_,
`Valeurs manquantes (notebooks) `_
* `Réseaux de neurones `_
(inférence, gradient)
* Apprentissage à base de gradients, différences avec les arbres
* `Deep learning `_
* :epkg:`tensorflow`, :epkg:`pytorch`, :epkg:`paddlepaddle`, :epkg:`chainer`
* GPU ?
* Zoo de modèles, `paddlepaddle `_,
`TensorFlow Hub `_,
`PyTorch Zoo `_
* `Transfer Learning `_
* Mise en production... `ONNX `_ ?
**Séance 3**
* `Série temporelles `_
* :epkg:`statsmodels`, modèles AR, :epkg:`fbprophet`
* Prédiction
* Série liées au COVID
* Réalisation de cartes
* Modèles épidémiologiques SIRD
**Séance 4**
* Webscrapping
* JSON, xml
* Clustering
* Traitement du texte
* Catégories (encoding, dirtycat)
* Texte libre, (tokenisation, encoder, tf-idf, deep learning)
**Séance 5**
* Pipeline scikit-learn
* Étendre scikit-learn avec ses propres modèles
* Créer un module python
* Test unitaires
* Interprétabilité des modèles
* Modèles éthiques
* Machine learning crypté
* Survival analysis
**Un peu plus de détails sur la séance 1**
Projet de machine learning
* Récupérer les données --> dataframe (pandas.read_csv("...", sep=";"))
* Features = X + cible y : objectif prédire y
* Séparer entre données apprentissage (train) et données test (test)
* Estimer le modèle sur la base train
* Evaluer sur la base test
* Validation croisée pour vérifier la robustesse du modèle
* La classification multiclasse est construire à partir de classifications
binaires selon deux stratégies : une contre toute (One Versus Rest) ou
les unes contre les autres (One Versus One)
Un peu plus en détail :
* `Courbe ROC `_
* Pour la régression Lasso est utilisée pour sélectionner les variables
en annulant les coefficients : :ref:`Lasso <2020-02-07sklapirst>`.
**Un peu plus de détails sur la séance 2**
* `Valeurs manquantes (cheatsheet)
`_,
`Valeurs manquantes (notebooks)
`_ :
* méthode naïve
* corrélations
* `KNNImputer
`_
* `Réseaux de neurones
`_
(inférence, gradient)
* `un neurone `_
* `réseau de neurones
`_
* propagation (évaluation)
* `densité
`_
* `apprentissage à base de gradient
`_
* `rétropropagation
`_
* `gradient stochastique
`_,
`implémentation
`_
* `régression
`_
* `classification
`_
* normalisation
* Réseau de neurones ou arbres ?
* `Gradient Boosting `_
* `Deep learning `_
* `Réseaux à convolution `_
* :epkg:`tensorflow`, :epkg:`pytorch`, :epkg:`paddlepaddle`, :epkg:`chainer`
* `exemple
`_
* `Yolo `_,
`Yolo explanations `_
* `Parler avec les mains à une machine
`_
* GPU ?
* Zoo de modèles, `paddlepaddle `_,
`TensorFlow Hub `_,
`PyTorch Zoo `_
* `Transfer Learning `_
* Mise en production... `docker `_,
`ONNX `_ ?
* attention, transformers
**Un peu plus de détails sur la séance 3**
* :ref:`tscovidrst`
* :ref:`tspredrst`
* `Single Spectrum Analysis (SSA)
`_
* `aftercovid `_
* `Algo - simulation COVID
`_
* `Evolution d'un voisinage, d'une population
`_
Les données du jour :
`Chiffres-clés concernant l'épidémie de COVID19 en France
`_.
**Un peu plus de détails sur la séance 4**
Covid ?
*scraping*
* `JSON `_,
`xml `_
* `Web-Scraping `_,
`Web-Scraping (correction) `_,
`Scraping, récupérer une image depuis LeMonde `_
* cache, javascript
* blacklist
* `TOR `_
* `wikipedia dump `_
* `expression régulière `_
*API REST*
* `API REST `_,
`API REST SNCF `_,
`API REST SNCF (corrigé) `_
* `Créer sa propre API REST `_
*Catégories*
* `OneHotEncoder `_
* `category_encoders `_
* 1 colonne par catégorie ça fait beaucoup de colonne
* pourquoi encoder --> ordre des catégories
* `dirty_cat `_
*Texte libre*
* `Introduction au text mining `_
* `Analyse de sentiments `_,
`Analyse de sentiments - correction `_
* bag of words (sac de mots), tokenisation, stop-words, TD-IDF, n-grammes
* word embedding (word2vec, gloves)
* `auto-encoders `_
* `HuggingFace `_,
`hugging face transformers `_,
`huggingface github `_
* `spacy `_,
`nltk `_,
`gensim `_
*topics*
* `LDA `_
*devinette*
Un chalutier mesure la taille de tous les poissons pris.
Comment estimer la proportion de mâles et femelles sachant
qu'ils n'ont en moyenne pas la même taille ?
**Un peu plus de détails sur la séance 5**
*scikit-learn API*
Construire un modèle qui effectue
une rotation des features avant un arbre de décision,
voir `API de sciki-learn et modèles customisés
`_,
`FunctionTransformer
`_.
*Analyse de survie*
`Analyse de survie
`_
*Interprétabilité* (voir `Interpretable Machine Learning
`_)
* `Partial Dependence and Individual Conditional Expectation plots
`_,
`SOME GENERAL THOUGHTS ON PARTIAL DEPENDENCE PLOTS WITH CORRELATED COVARIATES
`_
* `LIME (Local Interpretable Model-Agnostic Explanations) `_
* Approximer localement la prédiction d'un modèle par un modèle interprétable (comme une régression Lasso),
cela revient en quelque sorte à calculer le gradient du modèle en chaque feature pour un point donnée.
* .. image:: lime.png
* Simplifier l'analyse en groupant les variables (pixels) si trop de variables
* `SHAP (SHapley Additive exPlanations) `_
* Value d'une variable : on calcule l'espérance de la prédiction
en tirant aléatoirement des valeurs pour cette variable (loi marginal),
on fait la différence avec la prédiction moyenne.
* Lire `Shapley Values `_
* .. image:: shap.png
* .. image:: shap2.png
* `CounterFactual `_
* Dérivées partielles
* La prédiction est *Y*, on souhaite *Z*,
quelle est le plus petit changement dans *X* pour avoir *Z* ?
* Cas des variables corrélées
*Ethique*
* `Machine Learning éthique
`_
* `fairlearn `_
* variable de contrôle