Fondamentaux de l apprentissage et science des données Une...

Post on 30-Sep-2020

0 views 0 download

Transcript of Fondamentaux de l apprentissage et science des données Une...

Fondamentaux de l’apprentissageet science des données

Une brève introduction aux modèles et outils

E. Viennet

L2TIUniversité Paris 13

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 1 / 51

Plan du cours

1 Introduction

2 Bases de l’apprentissage (machine learning)Apprentissage superviséApprentissage non-superviséApprentissage et généralisation

3 Préparation des donnéesMéthodologieMéthodes et outils pour la préparation des données

4 Conclusion de la 1ère partie 1

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 2 / 51

Plan

1 Introduction

2 Bases de l’apprentissage (machine learning)Apprentissage superviséApprentissage non-superviséApprentissage et généralisation

3 Préparation des donnéesMéthodologieMéthodes et outils pour la préparation des données

4 Conclusion de la 1ère partie 1

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 3 / 51

Intelligence Artificielle

L’intelligence artificielle (IA) est l’ensemble des sciences et techniquesvisant à rendre les machines intelligentes.

« intelligente » = indistinguable de l’humain? (test de Turing)Actuellement, on sait construire des système réalisant presque aussibien, voire mieux, que l’humain des tâches variées :

reconnaitre des formes (objets)analyser, prévoir des signauxreconnaître la voixtraduire d’une langue à l’autrerechercher ou recommander de l’information

Voir https://experiments.withgoogle.com/collection/ai

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 4 / 51

Exemples d’applications du Machine Learning

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 5 / 51

Source:https://speakerdeck.com/rasbt/slides-from-machine-learning-with-scikit-learn-at-scipy-2016

Apprentissage vs Programmation

L’apprentissage artificiel (Machine Learning) est l’art de construire dessystèmes capables d’apprendre à partir de données :

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 6 / 51

Apprentissage et reconnaissance des formes

Extraction de

caractéristiquesZ X

CapteurDécision

(classe)Classement

Données :

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 7 / 51

Représentation d’une image

Niveaux de gris : {0,1, · · · ,255} (sur 8 bits).Parfois sur 10, 16 ou 32 bits. Souvent normalisés dans [0,1].

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 8 / 51

Représentation d’une image couleur RGB

Une image de largeur W et de hauteur H pixels est représentée par untenseur (matrice 3d), de dimension (H,W ,3).

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 9 / 51

Chaque pixel est untriplet (r ,g,b).

Attributs ou caractéristiques (features)

Les attributs sont les variables utilisées pour décrire les objets que l’onveut traiter

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 10 / 51

Attributs ou caractéristiques (features)

Exemple : distinguer des pommes et desoranges, à partir de leur masse et deleur couleur. Il y a des pommes rougeset des pommes vertes.

On peut calculer (apprendre) un modèlequi sépare ces fruits à partir de cesattributs.

Ce modèle pourra prévoir la nature d’unnouveau fruit.

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 11 / 51

Source: Jason’s Machine Learning 101, https://docs.google.com

Choix des attributs

Le choix des caractéristiques est trèsimportant. Certaines n’apportent pasd’informations utiles pour le problème.

Par exemple, si on utilise le nombre depépins et un indice de maturité desfruits, on ne peut pas séparer lespommes des oranges.

Le choix des variables est un sujet trèsimportant en apprentissage et datamining.

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 12 / 51

Dimensions

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 13 / 51

Source: http://www.visiondummy.com/2014/04/curse-dimensionality-affect-classification/

Dimensions

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 13 / 51

Source: http://www.visiondummy.com/2014/04/curse-dimensionality-affect-classification/

Dimensions

En pratique, on arrive à des modèles utilisants de nombreux attributs :des dizaines, jusqu’à des millions (signaux et images).

Mais l’augmentation du nombre d’attributs, donc de la dimension del’espace à explorer, augmente la difficulté de l’apprentissage (on parlede « malédiction de la dimension »).

Plus on a de variables, plus on a de paramètres et donc plus il fautd’exemples pour apprendre. Les approches deep learning sont unebonne approche pour réduire la gravité de ce problème.

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 14 / 51

Données

l’apprentissage demande des donnéessi les données sont rares, méthodes « classiques » plus adaptées(extraction de caractéristiques à la main)Les résultats dépendent des données (attention aux biais)

ExempleOn apprend un modèle identifiant des animaux à partir des attributs :

Nb de pattes Couleur Poids Animal4 noir 10kg Chien2 orange 3kg Poule... ... ... ...

Si on lui présente une vache (4 pattes, noire, 200kg), elle serareconnue comme un chien.

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 15 / 51

Plan

1 Introduction

2 Bases de l’apprentissage (machine learning)Apprentissage superviséApprentissage non-superviséApprentissage et généralisation

3 Préparation des donnéesMéthodologieMéthodes et outils pour la préparation des données

4 Conclusion de la 1ère partie 1

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 16 / 51

Trois types de problèmes d’apprentissage

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 17 / 51

Source:https://speakerdeck.com/rasbt/slides-from-machine-learning-with-scikit-learn-at-scipy-2016

Apprentissage supervisé

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 18 / 51

Source:https://speakerdeck.com/rasbt/slides-from-machine-learning-with-scikit-learn-at-scipy-2016

Apprentissage supervisé

On a des exemples, et chacun a une étiquette (valeur cible).Classement :

Nb de pattes Couleur Poids Animal4 noir 10kg Chien2 orange 3kg Poule... ... ... ...

Prévision de série (régression) :

Température Férié Nb Clients Consommation12 0 134 145614 0 124 123412 0 154 1512... ... ... ...

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 19 / 51

Apprentissage supervisé : régression linéaire

Données bivariées : (x0, y0), (x1, y1), . . . , (xn, yn)Modèle : y = f (x) + ε,où f (x) = w .x + b et ε est un bruitCritère de performance : erreur quadratique E =

∑n−1i=0 (yi − f (xi))

2

ApprentissageTrouver w et b qui minimisent l’erreur E sur les donnéesd’apprentissage.

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 20 / 51

Source: https://fr.wikipedia.org/wiki/Ajustement_affine

Apprentissage supervisé : régression linéaire

Workflow scikit-learn en apprentissage supervisé

Notebook Jupyter01-RegressionLineaire.ipynb

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 21 / 51

Apprentissage supervisé : plus proches voisins (kNN)

0 1 2 3 4 5 6 7 8k

3.0

3.2

3.4

3.6

3.8

4.0

4.2

4.4

Erre

ur %

Erreur kNN en fct de k

Notebook Jupyter02-kNN.ipynb

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 22 / 51

Source:https://www.datacamp.com/community/tutorials/k-nearest-neighbor-classification-scikit-learn

Apprentissage supervisé : régression logistique

Semblable à la régression (multivariée), utile pour les prévisionsdiscrète (classes). On estime la probabilité que l’entrée x appartienneà la classe y = y .

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 23 / 51

Autres modèles pour la classification supervisée

Il existe de nombreux modèles (ou algorithmes) pour la classificationou la régression supervisée. Citons :

Classifieur de Bayes naïfArbres de décisionSéparateurs à vaste marge (Support vector Machines, SVM)

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 24 / 51

Apprentissage non supervisé

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 25 / 51

Source:https://speakerdeck.com/rasbt/slides-from-machine-learning-with-scikit-learn-at-scipy-2016

Apprentissage non-supervisé : clustering(partitionnement)

grouper les points en paquets similairesI segmentation (exemple : groupes de clients semblables)I exploration des donnéesI compression

il faut une mesure de similaritépas de critère universel de performance : dépend de l’application

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 26 / 51

Apprentissage non-supervisé : k -moyennes (k-means)

k-means est un algorithme itératif :le nombre de paquets k est fixé apriorion minimise l’erreur dequantification

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 27 / 51

Apprentissage non-supervisé : k -moyennes (k-means)

Notebook JupyterEn deux dimensions : 03-kmeans.ipynbPour quantifier les couleurs d’une image04-kmeans-couleurs.ipynb

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 28 / 51

Apprentissage non-supervisé : analyse encomposante principale (ACP)

L’ACP construit le sous-espace linéairequi permet de décorréler les variables.Les axes, composantes principales,sont ordonnés selon leur importancepour expliquer les données.Le calcul est une recherche desvaleurs propres de la matrice decorrélation.

L’ACP est très utile pourréduire la dimension des donnéesvisualiser les données en 2 ou 3 dimensionscomprimer des données ou images

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 29 / 51

Source: Image Wikipedia

Apprentissage non-supervisé : analyse encomposante principale (ACP)

Notebook JupyterEn deux dimensions : 05-PCA-2D.ipynbPour réduire la dimension d’images de chiffres06-PCA-digits.ipynb

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 30 / 51

Apprentissage non-supervisé : t-SNEt-Distributed Stochastic Neighbor Embedding(van der Maaten et Hinton, 2008)Méthode non-linéaire permettant de représenter un ensemble de points d’un espace àgrande dimension dans un espace de deux ou trois dimensions. L’algorithme t-SNEtente de trouver une configuration optimale selon un critère de théorie de l’informationpour respecter les proximités entre points : deux points qui sont proches dansl’espace d’origine devront être proches dans l’espace de faible dimension.

Notebook JupyterPour réduire la dimension d’images de chiffres07-tSNE-digits.ipynb

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 31 / 51

Apprentissage non-supervisé : UMAP

UMAP : très récent, serait plus précis et plus rapide que tSNE.

Article : Leland McInnes, John Healy, James Melville « UMAP :Uniform Manifold Approximation and Projection for DimensionReduction » (2018) https://arxiv.org/abs/1802.03426Exemple visualisation chiffres en 2Dhttps://www.kaggle.com/mrisdal/dimensionality-reduction-with-umap-on-mnist

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 32 / 51

Guide pour choisir un modèle

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 33 / 51

Source: https://scikit-learn.org/stable/tutorial/machine_learning_map

Compromis Apprentissage/Généralisation

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 34 / 51

Compromis Apprentissage/Généralisation

(a) Modèle trop contraint (b) Optimal (c) Modèle trop libre

R(α) ≤ Remp(α) +√

1l

(h(log(2 l

h ) + 1)− log(η/4))

Méthodes réseaux connexionnistes :choix architecture

régularisation, early stopping

= Minimisation Structurelle du Risque (SRM, Vapnik)

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 35 / 51

Compromis Apprentissage/Généralisation

(a) Modèle trop contraint (b) Optimal (c) Modèle trop libre

R(α) ≤ Remp(α) +√

1l

(h(log(2 l

h ) + 1)− log(η/4))

Méthodes réseaux connexionnistes :choix architecture

régularisation, early stopping

= Minimisation Structurelle du Risque (SRM, Vapnik)

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 35 / 51

Complexité d’un modèle vs volume de données

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 36 / 51

Comment choisir un modèle?

validation croisée

En pratique, on a souvent 3 ensembles : apprentissage, validation,test.

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 37 / 51

Plan

1 Introduction

2 Bases de l’apprentissage (machine learning)Apprentissage superviséApprentissage non-superviséApprentissage et généralisation

3 Préparation des donnéesMéthodologieMéthodes et outils pour la préparation des données

4 Conclusion de la 1ère partie 1

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 38 / 51

L’extraction de connaissances à partir de données(KDD)

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 39 / 51

CRISP : Cross-industry standard process for datamining

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 40 / 51

Au fait, pourquoi présenter Python et ses outils?

Plodrack et al., Computational and Informatic Advances for ReproducibleData Analysis in Neuroimaging, Annual Review of Biomedical Data Science,March 2019

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 41 / 51

1- Outils (python) pour la préparation des données

10 Minutes to pandas https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html

Matplotlib Beginner’s Guidehttps://matplotlib.org/users/beginner.html

Official seaborn tutorialhttps://seaborn.pydata.org/tutorial.html

Pour aller plus loinIntro to pandas data structures, by Greg Redahttp://www.gregreda.com/2013/10/26/intro-to-pandas-data-structures

Modern Pandas (in 7 parts), by Tom Augspurger http://tomaugspurger.github.io/modern-1-intro.html

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 42 / 51

2- Analyse exploratoire des données (EDA)Comprendre les données : statistiques, visualisations tendances, qualité, hypothèses.Très important avant d’appliquer une modélisation.

Références7 Steps to Mastering Data Preparation for Machine Learning withPython - 2019 Editionhttps://www.kdnuggets.com/2019/06/7-steps-mastering-data-preparation-python.html

Prof. Patrick Meyer of the University of Virginia which provides anoverview of EDA : https://youtu.be/zHcQPKP6NpMExploratory data analysis (EDA)https://datascienceguide.github.io/exploratory-data-analysis

EDA and Data Visualization with Python https://kite.com/blog/python/data-analysis-visualization-python

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 43 / 51

Panda Profiling, un outil pour l’EDA

https://github.com/pandas-profiling/pandas-profiling

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 44 / 51

Panda Profiling, un outil pour l’EDA (suite)

https://github.com/pandas-profiling/pandas-profiling

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 45 / 51

3- Valeurs manquantes

Méthodes usuelles simples :supprimer les exemples avec valeurs manquantes ;supprimer les attributs (colonnes) avec valeurs manquantes ;utiliser la moyenne, la médiane ou le mode pour toutes les valeursmanquantes ;utiliser une régression pour estimer chaque valeur manquante.

Le meilleur choix dépend aussi du modèle.

RéférencesPanda : Working with missing datahttp://pandas.pydata.org/pandas-docs/stable/user_guide/missing_data.html

video from codebasics on handling missing values with Pandashttps://youtu.be/EaGbS7eWSs0

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 46 / 51

4- Outliers (valeurs aberrantes)

Référenceshttp://www.theanalysisfactor.com/outliers-to-drop-or-not-to-drop

Exemple simple : Removing Outliers Using Standard Deviationwith Python https://www.kdnuggets.com/2017/02/removing-outliers-standard-deviation-python.html

Discussion technique : Remove Outliers in Pandas DataFrameusing Percen-tiles. https://stackoverflow.com/questions/35827863/remove-outliers-in-pandas-dataframe-using-percentiles

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 47 / 51

5- Classes déséquilibrées

Arrive fréquemment dans les problèmes de détection, de diagnostic,etc. (évènements rares).

RéférencesLearning from Imbalanced Classeshttps://www.kdnuggets.com/2016/08/learning-from-imbalanced-classes.html

7 Techniques to Handle Imbalanced Data by Ye Wu & RickRadewagen, https://www.kdnuggets.com/2017/06/7-techniques-handle-imbalanced-data.html

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 48 / 51

6- Transformation des donnéesÉchantillon xi ou, en supervisé, (xi , yi).La transformation (x ′i , y

′i ) = f (xi , yi) vise à améliorer les performances

du modèle en :satisfaisant mieux les hypothèses (eg normalité) ;codant les variables pour rendre les données plus faciles à traiter.

Quelques référencesPreprocessing data https://scikit-learn.org/stable/modules/preprocessing.html

Normalization vs Standardisation : quantitative analysishttps://towardsdatascience.com/normalization-vs-standardization-quantitative-analysis-a91e8a79cebf

One-hot encoding : a method for transforming categorical featuresto a format which will better work for classification and regressionhttps://youtu.be/9yl6-HEY7_s

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 49 / 51

Plan

1 Introduction

2 Bases de l’apprentissage (machine learning)Apprentissage superviséApprentissage non-superviséApprentissage et généralisation

3 Préparation des donnéesMéthodologieMéthodes et outils pour la préparation des données

4 Conclusion de la 1ère partie 1

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 50 / 51

Conclusion de la 1ère partie

Nous avons introduit :l’apprentissage à partir de données : concept et applications ;quelques outils (Python) pour les sciences des données et lemachine learning ;les principaux modèles pour l’apprentissage supervisé etnon-supervisé.la préparation des données avant leur modélisation.

E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Intro. Apprentissage 51 / 51