Comment représenter les données en Machine Learning ?

de | 5 mai 2017

En machine Learning, les données sont le nerf de la guerre. Et vu leur importance, j’ai décidé d’écrire cet article sur comment représenter les données en machine learning et les types de données les plus souvent rencontrés.

Peu importe à quel point votre algorithme est sophistiqué, sans un nombre suffisant de données d’entrainement, il sera incapable de fournir de bonnes prédictions.

good data outweigh clever maths

 

Les types de données majeurs

Données quantitatives

Les données quantitatives représentent une mesure de quelque chose. Elles peuvent être de deux types :

  • Continue : Les valeurs que peut prendre une donnée numérique continue sont infinies. elles représentent une mesure d’une quantité. Par exemple le poids en Kg d’une personne, la distance entre Paris et Madrid en Km…
  • Discrète : Il s’agit généralement d’un comptage d’un événement. Par exemple : Le nombre d’enfants dans un foyer. Il ne peut pas avoir 2,5 enfants dans un foyer

 

Données qualitatives

Les données qualitatives sont aussi nommées des modalités. Une donnée qualitative n’a pas une sémantique mathématique. Elles apporte une information sur une caractéristique d’un individu observé. Exemple de modalité :

  • Sexe d’une personne (Homme / Femme)
  • Pays de naissance d’une personne
  • Race d’un chien
  • Affiliation politique

On ne peut pas dire qu’une femme est plus grande qu’un homme, ou que le PS est égale à FN ( affirmation à débattre 🙂 ).

Note 1 : on peut assigner un nombre à une modalité, mais les nombres assignés n’ont pas une sémantique mathématique. On peut par exemple dire que les gens nés en France seront de catégorie 1 et ceux nés en Espagne sont de catégorie 2, Mais sémantiquement, on ne pourra pas dire que 1 est plus grand que 2 dans ce cas.

note 2 : Quand on a des données qualitatives qui doivent être utilisées par un algorithme de Machine Learning, on les encodera par des nombres (comme dans la note 1)

Données ordinales

Les données ordinales sont un « mix » entre les données quantitatives et qualitatives. Ils s’agit de catégories/modalités ordonnées et qui ont une signification mathématique.

Prenons l’exemple des notes données par un client pour un produit sur un site e-commerce. Une étoile signifie qualité médiocre, et 5 étoiles signifie un produit excellent. Le nombre d’étoiles représentent une modalité (5 modalités si le nombre d’étoiles qu’on peut assigner à un produit est égale à 5). On peut, par exemple, ordonner les produits par qualité en fonction du nombre d’étoiles.

Représentation des données

Représentation des variables prédictives

Note : les termes variables prédictives, caractéristiques et input feature (en anglais) sont des termes signifiant la même chose et peuvent être utilisés de façon interchangeable.

Après avoir compris les différents types de données, regardons comment ces dernières doivent être formatées pour qu’elles puissent être utilisables par les algorithmes prédictifs.

Dans le monde du machine learning, toute observation du Training Set est décrite par un ensemble de variables prédictives x_{1},x_{2},...,x_{n}

Pour parvenir à des prédictions fiables, un algorithme de Machine Learning aura besoin de plusieurs observations pour détecter des corrélations entre les données. ces observations s’appellent l’ensemble des données d’entrainement (Training Set). on dénotera la taille de cet ensemble par la valeur m.

On dénotera x_{i,j} la variable prédictive x_{j} de l’individu i.
Exemple : Si on a un training set de 1000 enregistrements et qu’on souhaite récupérer la 3ème variable prédictive du 40ème individu, on écrira :

x_{40,3}

Un Training Set est formaté sous forme d’une matrice.

Pour qu’un algorithme de machine learning puisse utiliser toutes ces données, il lui faudra une représentation compacte. Elles seront stockées dans une Matrice dénotée X de dimension m \times nAvec le nombre d’enregistrements et n le nombre de caractéristiques pour une observation donnée.

X = \begin{pmatrix}x_{(1,1)} & x_{(1,2)} & x_{(1,...) & x_{(1,n)}} \\ x_{(2,1)} & x_{(2,2)} & x_{(2,...) & x_{(2,n)}}\\ ... & ... & ... & ... \\ x_{(m,1)} & x_{(m,2)} & x_{(m,...) & x_{(m,n)}}\end{pmatrix}

Représentation de la variable cible

Comme on vient de le voir, un Training Set est un ensemble d’observations. Chaque observation comporte une ou plusieurs variables prédictives x_{j} et une seule variable prédite y qu’on appelle en anglais output variable.

On a dénoté par m la taille d’un Training Set. L’ensemble des output variables sera représenté par un vecteur de taille m.

Note : Ce vecteur qu’on dénote par Y s’appelle feature vector et est en fait une matrice de dimension m \times 1

Y = \begin{bmatrix}y_{1} \\ y_{1} \\ ... \\ y_{m}\end{bmatrix}

Conclusion

Nous venons de voir comment on représente les données pour les injecter dans les algorithmes prédictifs. Il s’agit principalement de matrices et de vecteurs. Ces éléments mathématiques et les opérations d’algèbre linéaire qui les concernent sont au cœur des algorithmes du Machine Learning.

 

Si vous avez des questions, n’hésitez pas à me les poser dans un commentaire et si l’article vous plait, n’oubliez pas de le faire partager ! 😉

8 réflexions au sujet de « Comment représenter les données en Machine Learning ? »

  1. Ping : 10 minutes pour comprendre la régression polynomiale | Mr. Mint : Apprendre le Machine Learning de A à Z

  2. Ping : Overfitting et Underfitting : Quand vos algorithmes de Machine Learning dérapent ! | Mr. Mint : Apprendre le Machine Learning de A à Z

  3. Ping : Régression Polynomiale (Polynomial regression) en 10 minutes top chrono

  4. Ping : Gradient Descent Algorithm : Explications et implémentation | Mr. Mint : Apprendre le Machine Learning de A à Z

  5. Siradio

    Bonjour Younes,

    J’ai encore une question cette fois sur le nettoyage des données:

    j’ai un gros fichier csv avec 165 colonnes et 320772 lignes. pour une analyse exploratoire.
    Pour réduire le nombre de colonnes J’ai affiché pour chaque colonne le pourcentage de lignes vides. pour celles qui sont à 100% je peux les supprimer (je pense 🙂 ). pour les autres le pourcentage de lignes vides est entre 5 à 95%.
    Ma question : existe-t-il un seuil (% de lignes vides) officiel au delà duquel une colonne est considérée comme inutile dans l’étude?

    Répondre
    1. Younes Benzaki Auteur de l’article

      Bonjour Siradio,

      Comme tu l’as indiqué, il s’agit d’une phase exploratoire des données. Lors de cette dernière, on tente de comprendre le pourquoi il y a une absence de valeurs, et si on peut mettre une valeur par défaut aux lignes manquantes. Ces questions, se posent généralement dans un contexte métier et leurs réponses sera en fonction des contraintes de création de ces données.
      Par exemple, dans une base de données, le métier peux choisir de ne pas stocker le numéro de sécurité sociale des clients pour répondre aux exigences de politiques de confidentialités.
      Toutefois, lors de la phase exploratoire, on va essayer de détecter les valeurs aberrante (Outliers). Par exemple, si on remarque que la moyenne des salaires et 3000 € / mois et que quelqu’un touche 100 000€ / mois, cette donnée est un Outlier et ne sera pas pertinente pour notre modèle prédictif (elle le faussera). Donc il voudra mieux s’en débarrasser.

      En fin de compte, lors de la phase exploratoire des données, il n’y a pas de règle précise ou un pourcentage à dépasser (ou ne pas dépasser) pour décider ou non la suppression ou l’ajout d’une colonne ou d’une donnée. C’est un peu au « feeling » du Data Scientist. Et également en fontion des jeux de données que t’as sous la main.

      Dernier conseil, parfois il est conseillé d’appliquer un algorithme Machine Learning sur des données qu’on a pas encore nettoyer, pour voir comment il se comporte, et par la suite, affiner son comportement en nettoyant le jeu de données et en rejouant l’algo une seconde fois.

      La data science est une « expérimentation » empirique : Essayer, mesurer, Analyser et refaire le processus jusqu’à avoir un processus satisfaisant !

      Répondre
    2. KANDIA-LANGBAZOU

      Un livre très intéressant pour parfaire mes connaissances et compétences en traitement et analyse des données

      Répondre
  6. Siradio Diallo

    Bonjour Younes,

    Perfect!!!! Merci pour tes réponses précises…
    A très bientôt.

    EncoreMerci.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.