Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à 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. Machine Learning et Deep Learning
  3. L’analyse des données
Extrait - Machine Learning et Deep Learning Des bases à la conception avancée d'algorithmes (exemples en Python et en JavaScript)
Extraits du livre
Machine Learning et Deep Learning Des bases à la conception avancée d'algorithmes (exemples en Python et en JavaScript)
1 avis
Revenir à la page d'achat du livre

L’analyse des données

Introduction

Avant d’utiliser des algorithmes d’intelligence artificielle pour répondre à des problématiques de régression ou de classification supervisée ou non supervisée, il est très important de récolter et d’analyser les données qui sont à notre disposition. En fait, 80 % d’un projet d’intelligence artificielle consiste à récupérer, à nettoyer, et à analyser les données nécessaires pour répondre à la problématique traitée. En effet, comme nous l’avons dit précédemment, les données sont la nourriture des algorithmes d’intelligence artificielle. De la même façon qu’une mauvaise alimentation nuit à la santé physique et mentale, des données de mauvaise qualité (qui contiennent des erreurs ou qui ne sont pas corrélées à la variable que nous essayons d’expliquer) nuisent à la qualité de la régression ou de la classification. Il est également très utile de recourir à la datavisualisation, c’est-à-dire l’exploitation de graphiques pour synthétiser l’information des données.

Le data analyst est le professionnel de la donnée qui s’occupe de ces étapes. L’un de ses leitmotivs...

Récupération des données

En général, une entreprise dispose de données : sur ses employés, sur ses activités (noms des clients, transactions…), etc. Pour récupérer des données, il faut se connecter au système de gestion de base de données relationnelle ou non relationnelle (SGBDR ou NoSQL) de l’entreprise et effectuer les requêtes SQL ou NoSQL nécessaires. Voici un exemple de requête SQL :

SELECT * FROM clients 
WHERE prix_achat BETWEEN 50 AND 200; 

Cette requête renvoie toutes les colonnes de la table clients et seulement les lignes qui correspondent aux clients ayant effectué un achat d’une valeur comprise entre 50 et 200. Il est ensuite possible de faire un export de ce qu’a renvoyé la requête SQL dans un format plus facilement exploitable, comme CSV (Comma Separated Values) ou Excel.

Quand une entreprise a besoin de données dont elle ne dispose pas, elle peut se tourner vers des banques de données open source ou des outils de recherche de données.

En France, il y a par exemple le site data.gouv.fr, qui est la plateforme de diffusion de données publiques de l’État français. Cette plateforme propose un catalogue de données très variées en rapport avec les domaines suivants :

  • agriculture et alimentation

  • culture, communications...

Les outils de l’analyse de données

Une fois que les données sont récupérées, l’analyse de données peut commencer. Aujourd’hui, de nombreux outils sont à la disposition du data analyst, parmi lesquels :

  • Langages de programmation et bibliothèques : Python, SQL, NumPy, Pandas, Matplotlib, Seaborn, Scikit learn, Keras, OpenCV...

  • Logiciels : Tableau, Power BI, Knime…

Ces outils ne cessent de se perfectionner. Dans les sections suivantes, nous verrons les bases de l’utilisation de certains d’entre eux.

Manipulation d’arrays avec NumPy

NumPy (Numerical Python) est un module Python créé en 2005 par Travis Oliphant, permettant de travailler avec des arrays, c’est-à-dire des tableaux ou des matrices de données, et d’effectuer des calculs sur ces derniers (algèbre linéaire, calculs matriciels…). Mettre les données sous forme d’arrays permet de simplifier et d’accélérer certains calculs. De plus, l’implémentation des arrays NumPy les rend trente fois plus rapide à s’éxécuter que les arrays natifs de Python. Et comme vous le savez maintenant, le big data signifie traiter des problématiques de vélocité de données.

Ce qui rend NumPy si rapide est notamment le fait que ses tableaux utilisent un typage fort et qu’une grande partie de son code est écrit, non pas en Python, mais en C et C++, des langages plus rapides. Consultez le repository GitHub de NumPy pour en apprendre davantage sur son implémentation : https://github.com/numpy/numpy

Le code ci-après, largement commenté pour en faciliter la compréhension, donne des exemples de ce qu’on peut faire avec NumPy.

1. Importer Numpy

# On importe la bibliothèque numpy en la renommant np 
import numpy as np 
 
# On affiche la version de numpy 
print(np.__version__) 

2. Créer un array

# On crée un array numpy en utilisant la méthode array() 
# et en lui passant en paramètre une liste 
arrayListe = np.array([1...

Manipulation de dataframes avec Pandas

La bibliothèque Pandas a été créée en 2008 par le statisticien Wes McKinney. Pandas permet d’analyser des données en transformant des datasets en dataframes. Un dataframe l’objet principal de Pandas, ressemble à un tableau, exactement comme une feuille Excel. Une fois les données sous cette forme, nous pouvons effectuer des opérations d’algèbre relationnelle. Ces opérations, qui constituent une boîte à outils puissante, ne peuvent se faire que sur des données sous forme de tableaux. Nous pouvons, par exemple, calculer la moyenne d’une ligne ou d’une colonne, chercher la valeur moyenne ou médiane, ou appliquer d’autres opérations statistiques.

Pandas étant une bibliothèque open source, il est possible de consulter son code et de l’améliorer à cette adresse : https://github.com/pandas-dev/pandas

Après avoir importé Pandas, nous examinerons quelques-unes de ses fonctionnalités de base pour l’analyse de données.

1. Importer Pandas

# Importation de Pandas avec renommage grâce à un alias, ici pd 
 
import pandas as pd 
 
# Vérification de la version de pandas 
 
pd.__version__ 

On peut également importer une ou plusieurs méthodes de Pandas de cette façon :

# Importation d'une méthode, ici la méthode read_csv 
from pandas import read_csv 
 
# Importation de la totalité des méthodes de Pandas 
from pandas import * 

2. Créer un dataframe à partir de plusieurs objets

On peut créer des dataframes en partant de plusieurs objets :

  • Création d’un dataframe à partir d’un dictionnaire

# Les clés deviennent des colonnes, les valeurs deviennent des données 
 
pd.DataFrame({'animal':["chien", "chat","vache"], "race": 
['Chihuahua', "Bengal", "Charolaise"]}) 
 
 
# On peut indiquer l'ordre des colonnes et définir l'index 
# Si on ne définit pas l'index, il sera sous forme de nombre 
 
pd.DataFrame({'animal':["chien", "chat","vache"]...

Visualisation des données avec Matplotlib et Seaborn

La datavisualisation est le domaine qui consiste à transformer des données en graphiques compréhensibles. Plusieurs bibliothèques existent en Python pour cela. Parmi les plus connues, il y a Matplotlib et Seaborn. Matplotlib (https://matplotlib.org/) a été créé en 2003 par le neurobiologiste John D. Hunter. Matplotlib permet de visualiser des données sous la forme d’histogramme, de boîte à moustache, de diagramme de dispersion, etc. Ci-après des exemples de graphiques réalisables avec Matplotlib.

Commençons par importer Matplotlib et par vérifier sa version :

import matplotlib 
 
print(matplotlib.__version__) 

Une fois ces vérifications faites, nous pouvons commencer à réaliser des graphiques. La plupart des méthodes permettant de créer des graphiques avec Matplotlib sont dans le sous-module pyplot. Nous allons donc l’importer et utiliser plusieurs de ses fonctionnalités :

import matplotlib.pyplot as plt 
import numpy as np 
 
# On crée deux arrays 
x = np.array([6, 8, 12, 18]) 
y = np.array([13, 17, 21, 16]) 
 
# On passe en paramètre de la méthode plot les deux array x et y 
plt.plot(x, y) 
plt.show() 

Le graphique va placer des points dont les coordonnées correspondent...

Encodage et normalisation des données avec Scikit learn

1. Introduction

Une fois que les données ont été nettoyées et qu’une analyse descriptive et exploratoire a été menée pour mieux comprendre les corrélations qui se trouvent dans un dataset, il est temps de passer à l’encodage et à la normalisation. Il s’agit d’une étape indispensable pour obtenir des modèles performants. En réalité, le nettoyage et l’analyse font partie du prétraitement. Mais dans cette section, nous allons nous intéresser à deux des opérations en particulier : l’encodage et la normalisation.

En ce sens, nous allons utiliser la bibliothèque scikit learn. Scikit Learn est une bibliothèque libre en Python créée par David Cournapeau. Elle compte de nombreux contributeurs du monde académique ou de la recherche, par exemple l’INRA. Cette bibliothèque contient de multiples fonctions prêtes à l’emploi pour appliquer des algorithmes d’apprentissage automatique sur des données. Scikit learn permet de réaliser de nombreuses tâches nécessaires en data science.

Pour réaliser l’encodage et la normalisation, nous allons utiliser le module preprocessing. 

2. Encodage

L’encodage consiste à convertir des valeurs qualitatives...