Académique Documents
Professionnel Documents
Culture Documents
1/15
1. Pourquoi la préparation des données ?
Dans le monde réel, les données brutes sont rarement de bonne qualité ce qui rend parfois l’étape
d’analyse de données ou d’application des modèles de science de données difficile ou impossible
dans certains cas.
La préparation des données, parfois appelée « pré-traitement des données », est donc cruciale
car pendant cette étape, les données brutes sont nettoyées et structurées en vue de l'étape
suivante du traitement des données.
Pendant cette phase de préparation, les données brutes sont vérifiées avec soin afin de déceler
d'éventuelles erreurs.
En général, la préparation des données vise l’un ou plusieurs des objectifs suivants :
Quand on veut collecter des données dans le but d’appliquer une approche de science de
données, souvent, on a besoin de combiner des données de différentes sources :
- Données structurées : Bases de données, Fichiers de tabulateurs (CSV, …).
- Données semi-structurées : XML, JSON, …
- Données non structurées : documents textes, images, métadonnées, …
2/15
Il faut, tout d’abord, vérifier l’intégrité des données:
- Vérifier que les fichiers XML sont conformes à leurs définitions XSD
- Vérifier que les séparateurs des colonnes dans les fichiers CSV sont correctes (point-virgule ou
virgule et pas les deux au même temps).
- Valeurs omises (données non disponibles) : des échantillons (enregistrements) avec des
caractéristiques (attributs) sans valeurs.
Les causes, entre autres, peuvent être : le mauvais fonctionnement de l’équipement, les
incohérences avec d’autres données et donc supprimées, non saisies car non (ou mal)
comprises, ou encore considérées peu importantes au moment de la saisie
- Échantillons dupliqués
- Des mauvaises annotations. Par exemple, un annotateur humain marque un échantillon
comme “chat” or l’étiquette correcte est “chien” ou encore une incohérence dans les
conventions de nommage
- Bruit dans les données. Qui peut être causé par instrument de mesure défectueux, un
problème de saisie ou un problème de transmission
- Valeurs omises :
Suppression des lignes ou des exemples qui ont des valeurs manquantes
Saisie manuelle des valeurs manquantes
Remplacement par une constante globale. Par exemple, “inconnu” pour les valeurs
nominales ou “0” pour les valeurs numériques.
Remplacement par la moyenne dans le cas des valeurs numériques, en préférence de la
même classe.
Remplacement par la valeur la plus fréquente dans le cas des valeurs nominales.
Remplacement par la valeur la plus probable.
3/15
- Bruit (erreur ou variance aléatoire d’une variable mesurée):
Détection automatique des valeurs suspectes (outlier) et vérification humaine.
Binning ou Bucketing (groupement des données par classe)
Clustering pour détecter les exceptions
Lisser les données par des méthodes de régression.
On peut par exemple appliquer la discrétisation sur les notes aux examens A (15-20), B (12-14), C
(9-11), D (6-8), F (0-5).
Cette technique est également utilisée pour simplifier l’exploitation des données dans certains
types d’algorithmes. Par exemple, un modèle de science de données comme le classifieur naïf
bayésien multinomial, utilise des attributs de type nominal.
4.2. Normalisation
La mise en échelle min-max transforme chaque valeur numérique x vers une autre valeur
x’ ∈ [0, 1] en utilisant la valeur minimale et la valeur maximale dans les données. Cette
normalisation conserve la distance proportionnelle entre les valeurs d’une caractéristique.
La mise à l’échelle min-max est un bon choix si ces deux conditions sont satisfaites :
On connait les limites supérieure et inférieure approximatives des valeurs de la caractéristique
concernée (avec peu ou pas de valeurs aberrantes).
Les valeurs sont presque uniformément réparties sur cette plage ( [min, max] ).
Un bon exemple est l’âge. La plupart des valeurs d’âge se situent entre 0 et 90, et qui sont
distribuées sur toute cette plage.
4/15
En revanche, utiliser cette normalisation sur le revenu est une mauvaise chose. Un petit nombre
de personnes ont des revenus très élevés. Si on applique cette normalisation, la plupart des gens
seraient réduits à une petite partie de l’échelle.
Eviter le problème des valeurs non définies lorsqu’une valeur dépasse la limite de précision en
virgule flottante pendant l’entraînement.
Ramener plusieurs caractéristiques à la même échelle afin que l’algorithme d’apprentissage ne
favorise pas les attributs qui ont un plus large intervalle de valeurs que les autres.
4.2.2. Coupure
S’il existe des valeurs aberrantes dans les extrémités d’une caractéristique, on applique une
coupure max avec une valeur α et/ou min avec une valeur β.
Par exemple, dans le graphe suivant, qui illustre le nombre de cambres par personnes, on
remarque qu’au delà de 4 les valeurs sont très basses. La solution est d’appliquer une coupure
max de 4.
Cette transformation est utile lorsqu’un petit ensemble de valeurs ont plusieurs points, or la
plupart des valeurs ont moins de points. Elle sert à compresser la plage des valeurs.
5/15
4.2.4. Le Z-score
Le Z-score est utilisé pour assurer que la distribution d’une caractéristique ait une moyenne nulle
et un écart type = 1. C’est utile quand il y a quelques valeurs aberrantes, mais pas si extrême qu’on
a besoin d’appliquer une coupure.
Dans certains ouvrages, cette transformation n’est pas classifiée comme une “normalisation” mais
comme étant une “standardisation”. Cela est due au fait qu’elle transforme l’ancienne distribution
à une distribution normale.
Étant donnée une caractéristique avec des valeurs x, les nouvelles valeurs x’ peuvent être exprimé
par x, la moyenne des valeurs μ et leurs écart type σ.
4.3. Binarisation
Il existe des cas où on n’a pas besoin des fréquences (nombre d’occurrences) d’une caractéristique
pour créer un modèle; on a besoin seulement de savoir si cette caractéristique a apparue une fois
au moins pour un échantillon. Dans le cas général, on veut vérifier si la fréquence a dépassé un
certain seuil a ou non. Dans ce cas, on binarise les valeurs de cette caractéristique.
6/15
4.4. Créations de nouvelles caractéristiques
Par exemple, une équation de régression linéaire simple peut modéliser la sortie y en se basant
sur les caractéristiques xi et leurs poids correspondants wi comme suit:
Dans ce cas, on a modélisé la sortie en se basant sur des entrées indépendantes l’une de l’autre.
Cependant, souvent dans plusieurs scénarios réels, il est judicieux d’essayer également de
capturer les interactions entre les caractéristiques. Donc, on peut créer de nouvelles
caractéristiques en multipliant les anciennes deux à deux (ou encore plus). Notre équation de
régression linéaire sera comme suit:
Cette représentation peut être utile lorsqu’on veut convertir les données d’entrée en vecteurs. On
suppose qu’on a des données qualitatives (catégorielles) qui prennent une valeur dans un
ensemble fini Ω. Par exemple :
On convertit sous une forme vectorielle appelée one-hot, un vecteur de taille |Ω|, initialement
rempli de zéros. Ensuite, on associe à chaque position dans le vecteur, une valeur de l’ensemble Ω,
et on assigne la valeur 1 à la position de la valeur observé.
Des techniques de réduction de données peuvent être appliquées pour obtenir une représentation
réduite de l'ensemble de données qui est beaucoup plus petit en volume, tout en conservant un
taux important d’information utile.
7/15
Dans la pratique, ce qui est réduit c’est le nombre d'enregistrements/exemples ou le nombre
d'attributs ou de dimensions tout en gardant à l'esprit que les données réduites doivent produire
les mêmes résultats (ou presque) que les données d'origine.
Ainsi, l'exploration sur l'ensemble de données réduit devrait être plus simple, rapide et efficace
tout en produisant les mêmes (ou presque les mêmes) résultats analytiques.
Un cube de données est généralement utilisé pour agréger les données sous une forme plus
simple et pour interpréter facilement les données. Il est particulièrement utile lors de la
représentation de données avec des dimensions comme certaines mesures des besoins d’une
entreprise.
Chaque dimension d'un cube représente certaines caractéristiques de la base de données, par
exemple, les ventes quotidiennes, mensuelles ou annuelles. Les données incluses dans un cube de
données permettent d'analyser presque tous les chiffres pour pratiquement tous les clients, les
agents de vente, les produits et bien plus encore.
Ainsi, un cube de données peut aider à établir des tendances et à analyser les performances ;
résumer les données de manière à ce que les données résultantes résument les ventes totales par
an ou par décennie au lieu de mensuelle ou trimestrielle.
Les techniques d’analyse factorielle s'appliquent sur des données qu'on peut représenter par un
tableau et tentent de répondre à la question : tenant compte des ressemblances des individus et
des liaisons entre attributs/variables, est-il possible de résumer toutes les données par un nombre
restreint de valeurs sans perte d'information importante ?
8/15
5.3. Compression des données
Dans cette technique de réduction, les données réelles sont remplacées par des modèles
mathématiques ; au lieu de stocker les données réelles, on stocke les paramètres du modèle qui
approche le plus possible la distribution des données.
On peut également stocker les informations relatives aux méthodes non paramétriques telles que
le clustering ou l’histogramme des valeurs. Une donnée dans ce cas, est représentée par sa classe
ou l’intervalle auquel cette dernière appartient.
Des techniques de discrétisation des données sont utilisées pour diviser les attributs de nature
continue en données avec des intervalles. Les valeurs numériques sont remplacées par des
étiquettes de petits intervalles. Ainsi, les résultats des modèles de science de données sont
affichés de manière concise et facilement compréhensible.
Exemple : Les âges des humains peuvent être discrétisés en classes d’intervalles
]0, 20], ]20, 30], ]30, 40], ]40, 50], ]50, 60], ]60, 70], ]70, 80], ]80, 200]
En considérant la hiérarchie des concepts, pour réduire les dimensions, on peut remplacer chaque
donnée par un de ses ascendants dans la hiérarchie.
Par exemple, dans le cas de localisation géographique on peut choisir de retenir les villes au lieu
des quartiers ou districts ou arrondissement. Ou même la région au lieu de ville.
9/15
6. Structuration des données pour l’apprentissage automatique
Considérons un projet de science de données qui nécessite que nous appliquons un modèle de
classification supervisé.
Pour que ce projet soit réalisé, il est nécessaire d’avoir un ensemble d’enregistrements/exemples
qui sont décrits chacun par un ensemble d’attributs ou variables et le but est de prédire la classe à
laquelle appartient chacun des enregistrements.
Dans ce contexte, les variables explicatives sont les variables/attributs qui permettent de décrire
les enregistrements et la variable expliquée est l’attribut classe dont on doit prédire la valeur pour
chaque enregistrement/exemple.
- Classer les opérations de prêts (sera remboursé ou pas) en fonction des caractéristiques de
l’emprunteur et du prêt
- Classer des CV par compétence en fonction de leur contenu
- Classer automatiquement les images d’objets
Pour cela, il est nécessaire de disposer au départ d'un échantillon dit d'apprentissage dont le
classement est connu (données annotées ou étiquetées). Cet échantillon est utilisé pour
l'apprentissage des règles de classement.
Dans cette sous-section, nous parlons des mécanismes mis en place pour l’annotation ou
l’étiquetage des enregistrements (attribution des classes aux différents enregistrements).
L’annotation des données est l’une des importantes tâches dans l’apprentissage automatique. Si
les données sont mal annotées, la performance de notre système d’apprentissage va diminuer.
10/15
6.1.1. Approche 1 - Annotation interne
Avantages :
- Capacité à suivre le progrès : On peut vérifier le progrès de son équipe pour assurer qu’elle
respecte le calendrier du projet
- Bonne qualité : On peut vérifier la qualité de quelques données pendant l’annotation, identifier
les annotateurs qui n’offrent pas une bonne qualité et guider la tâche en donnant des
instructions sur les mauvais et les bons exemples qu’il faut suivre.
Inconvénients :
- L’annotation est trop lente : plus on gagne en qualité, plus on perd en temps.
En résumé, cette approche est recommandée pour les entreprises qui ont suffisamment de
ressources humaines, financières et du temps.
Si on ne dispose pas d’une équipe qualifiée pour l’annotation (pourtant l’annotation n’exige pas
une grande expertise) ou on n’a pas assez de ressources humaines, on peut embaucher des
travailleurs indépendants (freelancers). Ce qui nécessite :
Avantages :
- On connait ceux qu’on a embauchés ; on peut vérifier leurs compétences à l’aide de tests et on
peut contrôler leur travail.
Inconvénients :
- On doit préparer des instructions détaillée sur le processus d’annotation pour que les
annotateurs puissent comprendre comment faire la tâche correctement.
- On aura besoin de plus de temps pour soumettre et vérifier les tâches terminées.
- On doit créer un flux de travail: une interface qui aide les annotateurs.
Si on ne veut pas gaspiller plus de temps pour recruter des gens et suivre leurs travaux, on peut
toujours utiliser des plateformes de crowdsourcing. Ce sont des plateformes qui gèrent un grand
nombre de contributeurs offrant la main d’œuvre à la demande. Ils offrent des interfaces
graphiques simples à utiliser pour créer des tâches d’annotation. Parmi les plateformes, on peut
citer: Amazon Mechanical Turk (MTurk) et Clickworker.
11/15
Avantages :
- Des résultats rapides
- Coûts abordables
Inconvénients :
- La qualité des annotations: lorsque le revenu quotidien dépend du nombre de tâches
accomplies, les gens essayent de terminer le plus nombre possible de tâche. Les plateformes de
crowdsourcing utilisent des mesures de gestion de la qualité pour faire face à ce problème.
- On doit préparer des instructions détaillée sur le processus d’annotation pour que les
annotateurs puissent comprendre comment faire la tâche correctement.
Cette approche consiste à générer des données qui imitent les données réelles en termes de
paramètres essentiels définis par un utilisateur. Les données synthétiques sont produites par un
modèle génératif construit et validé sur un jeu de données original. Par exemple, générer des
visages pour la reconnaissance faciale.
Avantages :
- Gain de temps et de couts
- L’utilisation de données non sensibles: parfois, il faut demander la permission pour utiliser
certaines données
Inconvénients :
- La nécessité pour le calcul haute performance
- Problèmes de qualité des données: Les données synthétiques peuvent ne pas ressembler aux
données réelles
Cette approche consiste à écrire des programmes qui annotent les données automatiquement. Le
problème, ici, est qu’on a pu écrire une fonction pour annoter automatiquement les données. A
quoi, donc, sert l’apprentissage automatique si notre système va apprendre cette même fonction?
En général, on peut utiliser cette approche pour enrichir les données (ajouter plus d’échantillons).
Par exemple, on peut utiliser un algorithme de regroupement (clustering) pour avoir des groupes;
ensuite, on annote quelques échantillons dans chaque groupe et on généralise.
Avantages :
- Moins d’annotation manuelle
Inconvénients :
- Précision faible des étiquettes
Lorsqu’on a l’ensemble des données annotées, il est nécessaire d’y extraire l’échantillon dit
d'apprentissage qui est utilisé pour l'apprentissage des règles de classement.
12/15
Dans la classification, les données d’entraînement peuvent avoir des classes avec des proportions
asymétriques. Les classes qui constituent une grande (petite) proportion de données sont
appelées classes majoritaires (minoritaires) respectivement.
Le degré de déséquilibre peut aller de léger à extrême, comme le montre le tableau suivant :
Par exemple, dans le cas de la détection de fraude, les cas positifs (il y a un fraude) sont rares par
rapport au cas négatif (pas de fraude). On va finir par une distribution de données comme dans le
schéma suivant (200 négatifs et 1 positif).
Lors de la phase d’entrainement, le système va prendre plus de temps à apprendre le cas négatif
(pas de fraude) que le cas positif. Même si on a ce problème, on essaye d’entrainer notre système.
Si le modèle ne donne pas de bons résultats lors du test, on doit régler ça.
6.2.1. Sous-échantillonnage
13/15
Pour calibrer le modèle, on peut aussi donner un poids élevé aux scores générés par la classe sous-
échantillonnée.
6.2.2. Sur-échantillonnage
Dans ce cas, on peut créer plusieurs ensembles de données en divisant la classe majoritaire sur
plusieurs ensembles et fusionnant la classe minoritaire avec chaque ensemble. Ensuite, on peut
entrainer plusieurs modèles sur ces ensembles.
On peut, aussi, créer plusieurs ensembles de données en jouant sur le ratio entre la classe
minoritaire et la classe majoritaire et entrainer plusieurs modèles sur ces ensembles.
14/15
6.3. Fractionnement des données pour l’apprentissage automatique
L’échantillon d’apprentissage est utilisé pour l'apprentissage des règles de classement du modèle
de classification supervisée. Ensuite, il est nécessaire d'étudier la fiabilité de ces règles pour les
comparer à ceux d’autres modèles ou pour les appliquer.
Dans le cas d’apprentissage supervisé, il ne faut pas entrainer et tester le modèle sur les mêmes
données. Le système doit être testé sur des données qu’il n’a pas encore rencontrées pour tester
s’il a bien généralisé à partir des données qu’il a déjà vues. Donc, on a besoin de diviser notre
ensemble de données sur deux sous-ensembles :
- Les données de test sont suffisantes pour avoir des résultats significatifs.
- Les données de test sont représentatives. Il ne faut pas prendre un ensemble avec des
caractéristiques différentes de celles des données d’entrainement.
Parfois, lorsqu’on teste notre modèle et on rend compte qu’il donne des résultats médiocres, on
veut refaire la phase d’entrainement en changeant les paramètres de notre système. En faisant ça
plusieurs fois, notre modèle sera ajusté aux données de test. Pour faire face à ce problème, on
peut créer un troisième ensemble pour la validation. Le processus d’apprentissage sera alors
comme suit :
1- Entrainer le système sur l’ensemble des données d’entrainement pour avoir un modèle
2- Tester le modèle sur l’ensemble des données de validation
- Si la performance est bonne, aller vers l’étape suivante
- Sinon, changer les paramètres de votre système et refaire l’étape précédente
3- Tester le modèle sur l’ensemble de test pour calculer la performance de votre système et
comparer avec les autres systèmes existants.
15/15