Introduction au Machine Learning avec Python
Introduction au Machine Learning avec Python
data-transitionnumerique.com/machine-learning-python/
Nous vivons à l’ère des données, qui profite d’une meilleure puissance de calcul des
ordinateurs et de l’immensité des ressources de stockage. C’est de cela que nous faisons
allusion lorsque nous parlons de Big Data. Ces données ou informations augmentent de
jour en jour, mais le véritable défi consiste à leur donner un sens.
Les entreprises et les organisations tentent d’y faire face en construisant des systèmes
intelligents utilisant les concepts et les méthodologies de la science des données, de
l’extraction de données et de l’apprentissage automatique (machine learning). Parmi
ceux-ci, l’apprentissage automatique, notamment avec Python, est le domaine le plus
passionnant. Il ne serait pas faux d’appeler apprentissage automatique l’application et
la science des algorithmes qui donnent un sens aux données.
Dans cet article, nous parlerons de ce qu’est-ce le Machine Learning, ses applications
dans l’industrie, ses grands concepts et nous mettrons en pratique ses concepts avec le
langage de programmation Python.
Ces derniers temps, les organisations investissent massivement dans les nouvelles
technologies telles que l’intelligence artificielle, l’apprentissage automatique et le deep
learning afin d’obtenir des informations clés à partir des données pour effectuer plusieurs
tâches et résoudre des problèmes. Nous pouvons appeler cela des décisions prises par
des machines, notamment pour automatiser le processus. Ces décisions, guidées par les
données, peuvent être utilisées, au lieu d’utiliser la logique de programmation, dans les
problèmes qui ne peuvent pas être programmés de manière inhérente.
1/14
L’apprentissage automatique est considéré comme un sous-ensemble de l’intelligence
artificielle qui s’intéresse principalement au développement d’algorithmes permettant à un
ordinateur d’apprendre par lui-même à partir de données et d’expériences passées.
La reconnaissance d’images
Facebook nous offre une fonction de suggestion automatique de noms à chaque fois que
nous téléchargeons une photo avec nos amis Facebook. La technologie derrière cela est
l’algorithme de détection et de reconnaissance des visages de l’apprentissage
automatique. Elle est basée sur le projet de Facebook appelé « Deep Face« .
La reconnaissance vocale
2/14
La reconnaissance vocale est un processus qui consiste à convertir des instructions
vocales en texte, et elle est également connue sous le nom de « Speech to text » ou
« Computer speech recognition« . Les assistants vocaux Google, Siri, Cortana et Alexa
utilisent la technologie de reconnaissance vocale pour exécuter les instructions vocales.
Recommandation de produits
De même, lorsque nous utilisons Netflix, nous recevons des recommandations pour des
séries de divertissement, des films, etc.
3/14
Le diagnostique médical
Dans le domaine médical, l’apprentissage automatique est utilisé pour le diagnostic des
maladies. Grâce à cela, la technologie médicale se développe très rapidement et est
capable de construire des modèles 3D qui peuvent prédire la position exacte des lésions
dans le cerveau.
Cela permet de détecter facilement les tumeurs cérébrales et autres maladies liées au
cerveau.
L’apprentissage supervisé
Les algorithmes ou méthodes d’apprentissage supervisé sont les algorithmes ML les plus
couramment utilisés. Cette méthode ou algorithme d’apprentissage prend l’échantillon de
données, c’est-à-dire les données d’apprentissage, et la sortie, c’est-à-dire les étiquettes
ou les réponses, associée à chaque échantillon de données pendant le processus
d’apprentissage.
Par exemple, nous avons x comme variable d’entrée et y la variable de sortie. L’objectif
d’un algorithme d’apprentissage supervisé est de trouver une fonction f de mise en
correspondance de la variable d’entrée (x) avec la variable de sortie (Y), c’est-à-dire une
expression du type Y=f(x). Ce qui permettra d’obtenir de nouvelles données d’entrée (x),
nous pouvons facilement prédire la variable de sortie (Y) pour ces nouvelles données
d’entrée.
4/14
Sur la base des tâches à effectuer, les algorithmes d’apprentissage supervisé peuvent
être divisés en deux grandes catégories :
La Classification
Et la Régression
Classification
L’objectif principal des tâches basées sur la classification est de prédire des étiquettes de
sorties catégorielles ou des réponses pour les données d’entrée données. La sortie sera
basée sur ce que le modèle a appris pendant la phase de formation. Comme nous
savons que les réponses catégorielles en sortie signifient des valeurs discrètes et non
ordonnées, chaque réponse en sortie appartiendra à une classe ou une catégorie
spécifique. Nous aborderons la classification et les algorithmes associés en détail dans
les sections suivantes.
Régression
L’objectif principal des algorithmes de régression est de prédire les étiquettes ou les
réponses de sortie qui sont des valeurs numériques continues, pour les données d’entrée
données. La sortie sera basée sur ce que le modèle a appris dans sa phase de
formation. Fondamentalement, les modèles de régression utilisent les caractéristiques
des données d’entrée (variables indépendantes) et leurs valeurs de sortie numériques
continues correspondantes (variables dépendantes ou de résultat) pour apprendre une
association spécifique entre les entrées et les sorties correspondantes.
5/14
L’apprentissage non supervisé est un type d’apprentissage automatique dans lequel les
modèles sont formés à l’aide d’un ensemble de données non étiquetées et sont autorisés
à agir sur ces données sans aucune supervision.
Le fonctionnement de l’apprentissage non supervisé peut être compris par le schéma ci-
dessous :
Ici, nous avons pris des données d’entrée non étiquetées, ce qui signifie qu’elles ne sont
pas catégorisées et que les sorties correspondantes ne sont pas données non plus.
Maintenant, ces données d’entrée non étiquetées sont transmises au modèle
d’apprentissage automatique afin de l’entraîner. Tout d’abord, il interprétera les données
brutes pour trouver les modèles cachés des données et appliquera ensuite des
algorithmes appropriés tels que le clustering k-means, l’arbre de décision, etc.
Une fois qu’il a appliqué l’algorithme approprié, l’algorithme divise les données en
groupes en fonction des similarités et des différences entre les données.
Sur la base des tâches à effectuer, les algorithmes d’apprentissage non supervisé
peuvent être divisés en deux grandes catégories :
Le clustering
6/14
Le clustering est une méthode permettant de regrouper les objets en clusters de telle
sorte que les objets présentant le plus de similarités restent dans un groupe. Les objets
d’un groupe doivent avoir moins, voire aucune similarité avec les objets d’un autre
groupe. L’analyse par clusters trouve les points communs entre les données et les
catégorise en fonction de la présence ou de l’absence de ces points communs.
L’association
Une règle d’association est une méthode d’apprentissage non supervisée qui est utilisée
pour trouver les relations entre les variables dans une grande base de données. Elle
détermine les éléments qui apparaissent ensemble dans une base de données. La règle
d’association rend la stratégie de marketing plus efficace. Par exemple, les personnes qui
achètent un article X (un pain, par exemple) ont également tendance à acheter un article
Y (beurre/confiture). Un exemple typique de règle d’association est l’analyse du panier de
la ménagère.
Nous allons maintenant à la mise en pratique du machine learning en Python. Mais avant
de s’y attaquer, nous vous invitons à télécharger ce livre sur l’initiation à l’écosystème
Hadoop.
Pour une meilleure compréhension de ce tutoriel vous devez avoir une connaissance de
base sur le langage de programmation python et une connaissance globale de la libraire
Scikit-Learn. Nos articles sur la programmation Python pour la data et sur Scikit-Learn
vous donnera toutes les bases nécessaires.
L’algorithme de classification est une technique d’apprentissage supervisé qui est utilisée
pour identifier la catégorie de nouvelles observations sur la base de données
d’apprentissage. Dans la classification, un programme apprend à partir d’un ensemble de
données ou d’observations données, puis classe les nouvelles observations dans un
certain nombre de classes ou de groupes. Par exemple, Oui ou Non, 0 ou 1, Spam ou
Non Spam, chat ou chien, etc. Les classes peuvent être appelées cibles/étiquettes ou
catégories.
7/14
Le meilleur exemple d’un algorithme de classification ML est le détecteur de spam par
courriel.
Modèles linéaires :
Régression logistique
Support Vector Machines – SVM
Nous allons maintenant vous présenter le projet qui consiste à détecter des fruits à partir
de plusieurs caractéristiques. Sur la base de la valeur de la masse, de la largeur, de la
hauteur et du score de couleur, nous allons déterminer si un fruit est une pomme, une
mandarine, une orange ou un citron. Pour cela nous allons procéder en étapes :
import pandas as pd
df= pd.read_table("fruits.txt")
df
8/14
Étape 2 : Analyse des données
df.columns
Fruit Label
Fruit Name
Fruit Subtype
Mass
Width
Height
Color Score
Pour prendre les valeurs uniques des données de la colonne nom_fruit, utilisez la
méthode unique() de la bibliothèque pandas. Nous l’utiliserons sur la colonne fruit_name.
Elle retournera un tableau NumPy avec les valeurs uniques de la colonne.
nom_fruits = df['fruit_name'].unique()
nom_fruits
9/14
array(['apple', 'mandarin', 'orange', 'lemon'], dtype=object)
fruit_name
apple 19
mandarin 5
orange 19
lemon 16
dtype: int64
Essayons de visualiser maintenant sous forme de graphique les noms des fruits en
fonction de leur nombre d’apparition. Pour ce faire, vous devez importer la librairie
matplotlib et écrire le code suivant :
10/14
de données. Ces valeurs peuvent être converties en tableaux Numpy en utilisant l’attribut
values.
x = df.iloc[:,[3,4,5,6]].values
y = df.iloc[:,1].values
print(x,y)
11/14
Nous pouvons entraîner le modèle en utilisant des données que nous appelons données
d’entraînement ou ensemble d’entraînement. Les données d’apprentissage sont celles
qui présentent déjà la valeur réelle que le modèle aurait dû prédire. L’algorithme modifie
donc la valeur des paramètres pour tenir compte des données de l’ensemble
d’apprentissage.
Mais comment savoir si, après l’apprentissage, le modèle est globalement bon ?
Pour cela, nous avons des données de test/ensemble de test qui sont essentiellement
des données différentes dont nous connaissons les valeurs mais qui n’ont jamais été
montrées au modèle auparavant. Ainsi, si le modèle, après la formation, est performant
sur l’ensemble de test, nous pouvons dire que le modèle d’apprentissage automatique
est bon.
Il y a un autre paramètre appelé random_state qui est utilisé pour initialiser le générateur
de nombres aléatoires interne. Il décidera également pour la division des données en
valeurs d’entraînement et de test.
Les données de test sont prises par défaut à 0,25 des données d’origine, sauf si une
autre valeur est spécifiée. Par conséquent, la valeur de formation sera de 75% des
données originales et la valeur de test sera de 25% des données originales.
La normalisation Min Max est une stratégie de normalisation qui transforme linéairement
l’entrée y= (x-min)/(max-min), où min et max sont les valeurs minimum et maximum dans
X, où X est l’ensemble des valeurs observées de x. Lorsque x=max, alors y=1. Cela
12/14
signifie que la valeur minimale de X est mise en correspondance avec 0 et que la valeur
maximale de X est mise en correspondance avec 1.
scaler = MinMaxScaler()
x_train = scaler.fit_transform(x_train)
x_test = scaler.transform(x_test)
L’ajustement d’un modèle signifie que vous faites en sorte que votre algorithme apprenne
la relation entre les caractéristiques et les cibles afin de pouvoir prédire les valeurs
futures d’une cible.
model.fit(x_train,y_train)
Nous pouvons prédire la classe pour les instances de données de test en utilisant notre
modèle de classification finalisé dans scikit-learn à l’aide de la fonction predict().
y_pred = model.predict(x_test)
y_pred
y_test
Vous pouvez vérifier la sortie prédite avec la sortie réelle de l’ensemble de données de
test qui est stocké dans la variable y_test.
13/14
Étape 10 : Score de précision et matrice de confusion
À partir de la sortie ci-dessus, nous pouvons voir que certaines valeurs prédites ne
correspondent pas à la valeur réelle. Nous pouvons comparer les deux classes et trouver
la précision.
On obtient donc :
80.0
Nous pouvons conclure à partir de ce résultat que pour 100 valeurs, 80 valeurs seront
prédites correctement.
Nous pouvons même mettre cela sous la forme d’une matrice appelée matrice de
confusion pour mieux le comprendre.
array([[4, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 1, 0],
[2, 1, 0, 5]])
Dans cet article, nous avons effectué un tour d’horizon complet des algorithmes
d’apprentissage automatique pour l’analyse des données et les applications intelligentes.
Conformément à notre objectif, nous avons brièvement discuté de la manière dont les
différents types de méthodes d’apprentissage automatique peuvent être utilisés pour
trouver des solutions à divers problèmes du monde réel.
Nous avons également abordé plusieurs domaines d’application populaires basés sur les
techniques d’apprentissage automatique afin de mettre en évidence leur applicabilité
dans divers problèmes du monde réel.
Nous espérons que vous avez compris l’intérêt du machine learning dans le marché et
son intérêt dans votre carrière, notamment dans le domaine du Big Data. Pour aller plus
loin dans le Big Data, nous vous proposons cette formation sur Scala.
14/14