Accédez en illimité à
tous nos livres & vidéos, sur l'IA, le dev, les réseaux... Cliquez ici
Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici

Le Machine Learning avec Scikit-Learn

Introduction au Machine Learning : concepts et types de modèles

images/05El01.png

Nuage de mots des termes techniques et informatiques utilisés pour ce chapitre

Le Machine Learning vise à développer des systèmes informatiques capables d’apprendre à partir de données pour comprendre et prendre des décisions. Pour ce faire, nous allons utiliser des algorithmes et des modèles statistiques de différentes natures.

Il existe toute une panoplie d’outils permettant de répondre à tout type de problème.

Dans le cadre de cet ouvrage, nous restreindrons le Machine Learning à trois grands domaines :

  • l’apprentissage non supervisé ;

  • l’apprentissage supervisé ;

  • le traitement du texte et des images.

Il est important de signaler que le traitement du langage naturel et des images ne sera abordé, dans le cadre de cet ouvrage, qu’en superficie, pour rester accessible à tous. En revanche, d’autres domaines, comme l’apprentissage par renforcement, qui ont un champ applicatif plus confidentiel, seront volontairement mis de côté.

1. L’apprentissage non supervisé

a. Définition

L’apprentissage non supervisé va nous permettre de comprendre le fonctionnement caché de nos données. Il est appelé non supervisé car les informations qui vont émerger n’ont pas d’étiquette. Nous sommes donc dans une situation de découverte, ne sachant pas à l’avance ce que nous allons trouver. Ce type d’apprentissage va nous permettre de répondre aux questions suivantes :

  • Quelles sont les caractéristiques dans mes données qui sont les plus importantes ?

  • Lesquelles sont de moindre intérêt ?

  • Existe-t-il des liens ou des oppositions entre certaines caractéristiques ?

  • Comment pourrions-nous mieux comprendre les composantes de notre champ d’études ?

  • Comment regrouper certaines observations pour résumer les grandes tendances ou raisonner en termes de groupes ?

Concrètement, si nous nous représentons nos données comme un tableau Excel, les deux grandes opérations vont consister à agir sur les colonnes ou sur les lignes. Nous pourrions, pour illustrer, imaginer un tableau contenant les clients...

Présentation de Scikit-Learn, la bibliothèque Python pour la data science

1. Une offre simple et complète de fonctionnalités

La librairie Scikit-Learn, également appelée Sklearn, est une bibliothèque de Machine Learning créée par des membres de l’INRIA en 2010. Elle s’est progressivement imposée pour devenir une référence en la matière.

Scikit-Learn ne se contente pas de proposer une large gamme de modèles de régression et de classification, elle offre en plus toutes les fonctionnalités pour préparer les données, optimiser les algorithmes et mesurer les résultats. Elle permet ainsi de gérer seule toute la chaîne des opérations d’une modélisation classique.

Sur la forme, Scikit-Learn a été pensée pour être simple et satisfaire aussi bien les débutants que les praticiens les plus expérimentés. Certains points bien pensés facilitent notamment la prise en main :

  • La bibliothèque possède une documentation fournie mettant toujours un exemple d’application pour chaque algorithme.

  • Hormis quatre exceptions (LinearRegression, LogisticRegression, SVR et SVC), les algorithmes de régression et de classification ont, respectivement, tous un nom qui se termine par Regressor ou Classifier pour indiquer à quel type d’apprentissage ils sont destinés.

  • Les algorithmes sont assez simples à utiliser et présentent des méthodes communes à un large nombre de fonctions permettant de facilement de passer de l’un à l’autre en retrouvant des termes communs.

C’est justement l’occasion de découvrir ensemble ces méthodes communes qui facilitent grandement la prise en main de Scikit-Learn. Mais juste avant, il est temps de l’installer si ce n’est pas encore fait :

pip install -U scikit-learn 

L’option -U nous assurera en plus de mettre la librairie à jour, si elle est déjà présente, vers la dernière version.

2. Des méthodes communes aux différentes fonctions

Lors de la mise en œuvre de Scikit-Learn, nous utilisons un socle commun de méthodes que nous allons retrouver dans la plupart des algorithmes. La finalité de cette bibliothèque...

Les grandes étapes d’un projet de Machine Learning

Scikit-Learn va nous accompagner dans toutes les grandes étapes d’une modélisation que nous allons découvrir maintenant d’un point de vue théorique. Nous fournirons un exemple pratique de chaque cas, régression et classification, au chapitre L’apprentissage supervisé.

Cette découverte de la modélisation sera séparée en deux parties en commençant par la préparation des données puis l’expérimentation des algorithmes et leur évaluation.

1. La préparation des données

a. La séparation des variables explicatives de la variable cible

La modélisation est une expérience scientifique consistant à prédire une valeur ou l’appartenance à une classe à partir des données disponibles.

Après avoir importé les données d’un jeu fictif, que nous nommerons df, la première mesure va consister à séparer les variables explicatives de la variable à expliquer, dite variable cible :

X = df[["Variable_1","Variable_2","Variable_3"]] # Variables explicatives 
y = df["Variable_cible"]                         # Variable cible 

b. La séparation entre données d’entraînement et données de test

Afin de nous rapprocher des conditions réelles et d’être en mesure d’évaluer correctement les performances de notre expérimentation, nous allons réaliser une deuxième séparation consistant à mettre de côté une partie des données qui serviront à simuler les conditions réelles.

Ainsi, nous isolerons, dès le départ, entre 10 % et 30 % des observations selon les cas. Ce jeu sera nommé le jeu de test et il comprendra deux tables : X_test et y_test. La partie restante sera le jeu d’entraînement, comprenant lui aussi deux tables : X_train et y_train. Ce dernier servira à entraîner les algorithmes qui auront connaissance de ses paramètres. Le jeu de test, quant à lui, sera inconnu des algorithmes et n’interviendra...

Conclusions sur la modélisation

En guise de synthèse sur ce sujet, voici un récapitulatif des grandes étapes à mener pour réaliser cette partie oh combien importante. Les colonnes du tableau, Régression et Classification, indiquent les possibilités spécifiques offertes pour chaque étape :

Ordre

Étape

Régression

Classification

1

Sélection des variables descriptives et cible

 

 

2

Split des données (train et test)

 

Stratify*

3

Transformation des colonnes

Binarisation des variables catégorielles

Transformations et/ou mises à l’échelle des variables numériques

4

Remise en forme et modification des types

 

 

5

Entraînement d’un modèle de base

DummyRegressor

DummyClassifier

6

Entraînement de différents algorithmes

Régression linéaire et algorithmes dont le nom se termine par Regressor

Régression logistique et les algorithmes dont le nom se termine par Classifier

7

Évaluation des métriques

RMSE

MAE

Accuracy

Précision

Recall

F1-score

Matrice de confusion

8

Évaluation multicritères

Scores

Variabilité des scores

Temps d’entraînement

Temps de calcul

Poids des fichiers des algorithmes

 

*Stratify : option utilisée pour que la répartition des classes dans le jeu d’entraînement...