• Page Fond menu
Accueil > Blog > Machine learning
< Retour

Machine learning

04 / 06 / 2018 | Expert
Machine learning

Machine Learning

Auteure : Julie ROSSI - Ingénieure de recherche chez Scille

 

Le machine learning est une branche de l’intelligence artificielle qui permet de prédire un comportement à partir de données sans développer un algorithme spécifique à la problématique.

 

Il existe des algorithmes qui peuvent détecter un spam tout comme la présence d’un chien sur une photo selon les données qui lui sont passées en entrée. C’est en “apprenant” des données qui leur sont fournies qu’ils font des prédictions.

 

Le machine learning regroupe de nombreux algorithmes répondant à cette spécification qui peuvent se regrouper en trois catégories, en fonction de ce qu’ils prédisent.

 

Selon la prédiction recherchée, il faudra choisir entre différentes familles d’algorithmes :

 

Régression

Prédire la prochaine valeur d’une série de points

 

Classification

Affecter une étiquette connue à une nouvelle donnée

 

Clustering

Assigner une nouvelle donnée à un groupe

 

 

Une régression prédit une valeur numérique continue.

 

La classification et le clustering renvoient des valeurs discrètes, sélectionnées dans une liste prédéfinie de valeurs.

La différence entre la classification (ou clustering supervisé) et le clustering réside dans la nature de ces valeurs.

Un “classifieur” attend en entrée la liste des valeurs possibles (étiquettes) ainsi que, pour chaque donnée d’apprentissage, son étiquette associée.

Dans le clustering, on choisit seulement le nombre de groupes, sans information sur la répartition des données d’entrée. C’est l’algorithme qui se chargera de créer ces groupes.

 

 

Les étapes

La prédiction se passe en deux étapes :

  1. il faut d’abord apprendre un modèle à partir de “données d’entraînement”
  2. ensuite, ce modèle permettra de faire des prédictions

 

Apprentissage

Afin de pouvoir prédire un résultat, il faut commencer par “entraîner” un modèle. Le modèle “apprend” des données connues. Pour cela, il calcule les valeurs optimales de ses paramètres internes afin représenter au mieux les données.

Le résultat de cette étape d’apprentissage est un modèle “entraîné” sur nos données qui sera capable de prédire des résultats pour des nouvelles données.

 

 

Prédiction

Une fois le modèle entraîné, on peut alors l’utiliser pour prédire des résultats sur de nouvelles données non connues.

 

 

La mise en oeuvre

Grâce à des implémentations libres des algorithmes de machine learning telles que la bibliothèque Python scikit-learn, pour implémenter une solution de machine learning, il suffit :

  • d’implémenter un programme d’extraction d’attributs à partir des données
  • de choisir et de paramétrer le modèle

 

Extraction d’attributs

Les algorithmes de machine learning sont des programmes informatiques. Par conséquent, ils attendent des informations numériques en entrée. Ainsi, par exemple, un fichier texte ou pdf devra au préalable être transformé en une collection d’attributs numériques (nombre de mots, fréquence d’apparition des lettres, taille du fichier, date de création, etc.).

 

Il est donc nécessaire d’ajouter une étape intermédiaire aux schémas précédent :

 

 

Ce sont en réalité des données “normalisées” qui seront passées à l’algorithme de machine learning dans la phase d’apprentissage puis au modèle dans la phase de prédiction.

 

L’algorithme va utiliser ces attributs pour réaliser ses prédictions.

Une sélection attentive de ces derniers est donc nécessaire, pour cela une bonne connaissance des données est indispensable.

En effet, il faut réussir à extraire les informations discriminantes présentes dans les données.

 

Un exemple concret

Un exemple bien connu est l’utilisation des données des passagers du Titanic pour prédire la survie d’un passager.

Un jeu de données contenant des informations sur les passagers est disponible en ligne (https://github.com/JulieRossi/kaggle-titanic/blob/master/data/train.csv).

Il contient, pour chaque passager, plusieurs informations telles que le nom, l'âge, le genre, le prix auquel il a acheté son billet, le nombre de personnes de sa famille à bord, son numéro de ticket, etc, ainsi que s’il a survécu.

La première étape est donc d’étudier ces données pour en extraire des attributs numériques significatifs.

En étudiant les données, on observe que ne numéro de cabine n’est pas renseigné pour tous les passagers (moins de la moitié), cette donnée ne semble pas pertinente et doit être supprimée.

De même, l’information contenant le lieu d'embarcation peut sembler ne pas avoir d’impact sur la survie d’un passager, on pourrait envisager de la supprimer.

En revanche, le genre semble un critère important, mais il n’est pas numérique, il faut donc le transformer (0 pour homme, 1 pour femme par exemple).

 

 

Le choix de l’algorithme

Pour chaque type de prédiction, il existe de nombreux algorithmes différents. Par exemple, pour la classification, il est possible d’utiliser, entre autre, des réseaux de neurones (“deep learning”), des arbres de décision ou encore des machines à vecteur de support (en anglais support vector machine, SVM).

De plus, chaque algorithme dispose “d'hyper paramètres” que l’on peut modifier pour améliorer les résultats obtenus.

En plus de mettre à disposition les algorithmes implémentés, scikit-learn propose également des interfaces permettant de rapidement comparer différents modèles avec différents paramètres.

 

 

Conclusion

La mise en oeuvre de solutions de machine learning est grandement facilitée par les implémentations open source des différents algorithmes. Il n’est alors plus nécessaire de connaître le fonctionnement exact de ces derniers ainsi que les mathématiques poussées dont ils proviennent.

Néanmoins, une bonne connaissance des données sur lesquelles on travaille est nécessaire pour concevoir des modèles efficaces.

Il est facilement oublié que le machine learning est l’étape finale du processus d’analyse des données.

Avant de considérer faire des prédictions, il faut déjà savoir collecter les données, les pré-traiter (car les sources sont bien souvent inconstantes), les stocker, les visualiser pour mieux les connaître et enfin seulement il est intéressant d’envisager le machine learning.