Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Intelligence artificielle vulgarisée
  3. Machine Learning et Pokémons : première partie
Extrait - Intelligence artificielle vulgarisée Le Machine Learning et le Deep Learning par la pratique
Extraits du livre
Intelligence artificielle vulgarisée Le Machine Learning et le Deep Learning par la pratique
2 avis
Revenir à la page d'achat du livre

Machine Learning et Pokémons : première partie

Ce que nous allons découvrir et les prérequis

Dans ce chapitre, nous allons découvrir à travers un cas pratique les premières étapes pour mener à bien un projet de Machine Learning.

L’exemple que nous allons traiter est un cas d’école et il y est souvent fait référence dans la littérature avec plus ou moins de facilités de compréhension pour les néophytes en matière d’analyse de données. Malgré cette récurrence d’explications, nous avons choisi de vous le présenter, car il permet d’aborder un large panel de techniques propres au Machine Learning et à l’analyse de données. Bien souvent présenté sous un angle scientifique et mathématique, nous allons lui apporter une description vulgarisée vous permettant de bien comprendre les rouages du Machine Learning.

Prérequis nécessaires pour bien aborder ce chapitre : avoir lu les chapitres Les fondamentaux du langage Python, Des statistiques pour comprendre les données et Principaux algorithmes du Machine Learning.

L’univers des Pokémons

Un Pokémon est un animal issu du monde des jeux vidéo. Chaque Pokémon possède des caractéristiques qui lui sont propres, à savoir son type (Pokémon d’herbe, Pokémon de feu…) lui donnant alors des facultés spéciales. Ainsi, le Pokémon nommé Dracofeu, de type Feu est capable de cracher du feu. De plus, on note l’existence de Pokémons légendaires très rares et très puissants faisant référence à un mythe en relation avec la création et l’organisation du monde (Pokémon diamant, Pokémon platine…).

Les Pokémons sont également de différentes générations faisant référence à l’évolution de l’univers des Pokémons. Les Pokémons de première génération sont ceux ayant pris naissance au tout début de la création de l’univers (création de 151 Pokémons) pour arriver à nos jours à la huitième génération avec plus de 800 Pokémons !

Dans cet univers viennent ensuite les dresseurs de Pokémons. Les dresseurs les collectionnent et les élèvent dans le but de les faire combattre entre eux jusqu’au KO. Lors d’un combat de Pokémons, opposant deux dresseurs...

Notre mission : choisir le bon Pokémon !

En tant que dresseurs de Pokémon du 21e siècle, nous allons faire appel au Machine Learning pour nous aider à faire le bon choix de Pokémon et ainsi gagner nos combats. Pour cela, nous allons nous appuyer sur des données en provenance du Pokédex, mais aussi sur des données issues des différents combats afin de trouver le bon modèle de prédiction qui pourra alors nous assurer une victoire lors de chaque bataille !

Des données pour un apprentissage supervisé

1. Des données basées sur l’expérience

Le Machine Learning est basé sur l’utilisation de données afin de permettre à notre ordinateur d’apprendre et de pouvoir réaliser des prédictions. Ces données doivent être en relation avec la mission qui nous est confiée et basée sur l’expérience.

Dans notre cas, l’expérience consiste à connaître les issues de combats de Pokémons.

2. Disposer d’un grand nombre de données d’apprentissage

Une machine n’est pas capable d’apprendre sur un petit jeu de données, car elle doit pouvoir étudier toutes les possibilités pour réaliser ses prédictions. Par conséquent, plus le nombre de cas d’études pour résoudre un problème est important, plus les prédictions seront précises.

3. Des données d’apprentissage et des données de tests

Tout comme l’être humain, il est nécessaire de valider l’apprentissage de la machine afin de pouvoir corriger les écarts d’apprentissage (appelés biais) et ajuster ou modifier le modèle d’apprentissage. Pour cela, nous avons besoin de données d’apprentissage et de données de tests.

Les étapes à réaliser pour mener à bien un projet de Machine Learning

Mener à bien un projet de Machine Learning consiste à réaliser six étapes consécutives :

1 - Définition du problème à résoudre

2 - Acquisition des données d’apprentissages et de tests

3 - Préparer et nettoyer les données

4 - Analyser, explorer les données

5 - Choisir un modèle d’apprentissage

6 - Visualiser les résultats, et ajuster ou modifier le modèle d’apprentissage

La phase de préparation des données est la plus importante dans un projet de Machine Learning, car en tant qu’humains, nous devons essayer de trouver les données les plus intéressantes qui nous permettront de répondre au problème donné.

Bien plus qu’une simple analyse des données, il faut déterminer comment il nous est possible de résoudre manuellement le problème, à partir des informations dont nous disposons, avant de le confier à la machine.

Ainsi, un même jeu de données peut être exploité différemment en fonction du problème donné.

1. Création et configuration d’un nouveau projet Python

Avant d’aller plus loin, nous devons créer un nouveau projet Python.

 Pour ce faire, il convient d’ouvrir l’éditeur...

Étape 1 : définir le problème à résoudre

Comme évoqué en début de chapitre, la problématique à laquelle nous devons répondre consiste à préconiser au dresseur de Pokémon l’animal à utiliser lors d’un combat afin d’être le vainqueur.

Étape 2 : acquérir des données d’apprentissage et de tests

Les fichiers que nous avons téléchargés et copiés dans notre projet comportent les données nécessaires à la résolution de notre problème.

Le fichier Pokedex.csv contient la liste des Pokémons et leurs caractéristiques. Le fichier Combats.csv est notre base de connaissance et d’apprentissage, car il contient une liste de combats de Pokémons et le résultat de chacun d’entre eux. Enfin, le fichier tests.csv nous permettra de valider le modèle d’apprentissage.

Listing des fichiers dont nous disposons

À l’aide du module OS nous permettant d’utiliser les fonctionnalités de notre système d’exploitation, il nous est possible de lister les fichiers contenus dans le répertoire datas de notre projet, comme le montre le code ci-dessous :

#------------------------------------------ 
# IMPORT DES MODULES 
#------------------------------------------ 
import os #Utilisation du module OS (operating system) 
 
 
#------------------------------------------ 
# ANALYSE DES DONNEES 
#------------------------------------------ 
 
#Récupération des fichiers contenus dans le répertoire datas 
#de notre projet 
listeDeFichiers = os.listdir("datas") 
 ...

Étape 3 : préparation des données

Dans cette troisième étape, nous allons réaliser une lecture approfondie de nos données afin de comprendre leur rôle et les impacts qu’elles peuvent avoir dans l’objectif de prédiction que nous nous sommes fixé. Nous allons en quelque sorte essayer de résoudre le problème "manuellement" en formulant des hypothèses et en essayant de sélectionner les données qui répondront à celles-ci.

L’étude des données passe notamment par leur description (nom, type…), ainsi que par divers processus de traitement tels que le nettoyage (suppression des données inutiles, recherche des données manquantes) et enfin la combinaison entre elles, aussi appelée agrégation, dans le but de disposer d’un jeu de connaissances (observations) utilisables et appropriées à l’apprentissage et à l’atteinte de notre objectif.

1. De quelles données disposons-nous ?

Les fichiers de données dont nous disposons portent l’extension CSV (Comma Separated Value). C’est-à-dire que les données contenues dans ces fichiers sont séparées par des virgules. Pour vous donner une petite idée du contenu de ces fichiers, vous pouvez les ouvrir à l’aide du logiciel Excel ou via un simple éditeur de texte tel que Notepad ou bien encore directement dans le logiciel PyCharm.

Dans notre exemple, les fichiers sont de petite taille, pouvant être ouverts et exploités par des logiciels. Mais dans la plupart des cas liés au Machine Learning, les fichiers contiennent énormément de données, ne pouvant alors plus être exploités par des logiciels traditionnels.

La démarche de préparation des données sera donc réalisée en supposant que les fichiers dont nous disposons sont trop volumineux pour être ouverts dans Excel ou dans l’outil NotePad de Windows. Nous travaillerons donc à l’aveugle et procéderons donc à la découverte progressive de nos données.

Nous allons utiliser le module Pandas, disposant d’une fonction de lecture de fichiers CSV (read_csv), capable de découper le contenu du fichier et de le stocker dans un tableau...

Une petite pause s’impose

Avant d’aller plus loin, revenons quelques instants sur ce que nous avons appris.

Dans ce chapitre, nous avons découvert la mise en place des premières étapes permettant de mener à bien un projet de machine learning, à savoir :

  • La définition du problème à résoudre

  • L’acquisition de données

  • La préparation des données

Comme vous pouvez le constater, le temps de préparation des données est assez important. Et c’est ainsi pour tout projet de Machine Learning. En effet, comme nous l’avons indiqué, sans données, pas de Machine Learning. Sans oublier que ces données doivent être de bonne qualité due à une bonne préparation de celles-ci.

Nous avons également abordé quelques fonctions du module Pandas de Python, permettant d’interroger les données afin de mieux les comprendre, mais aussi à les modifier et à les agréger en vue d’obtenir un jeu de données qualitatif.

Dans le chapitre suivant, nous allons nous focaliser sur la visualisation des données, l’analyse approfondie de celle-ci et terminer par la recherche d’un modèle de prédiction capable de répondre au problème donné. Tout un programme !