Apprentissage non supervisé

Apprentissage non supervisé en Python

Benjamin Wilson

Director of Research at lateral.io

Apprentissage non supervisé

  • L'apprentissage non supervisé identifie des modèles dans les données
  • Par exemple, regrouper les clients en fonction de leurs achats
  • Compresser les données en utilisant les modèles d'achat (réduction de dimension)
Apprentissage non supervisé en Python

Apprentissage supervisé et non supervisé

  • L'apprentissage supervisé identifie des modèles pour une tâche de prédiction
  • Par exemple, classer les tumeurs comme bénignes ou cancéreuses (étiquettes)
  • L'apprentissage non supervisé identifie des modèles dans les données
  • … mais sans avoir à l'esprit une tâche de prédiction spécifique
Apprentissage non supervisé en Python

Ensemble de données sur les iris

  • Mesures de nombreuses plantes
  • Trois espèces d'iris :
    • setosa
    • versicolor
    • virginica
  • Longueur des pétales, largeur des pétales, longueur des sépales, largeur des sépales ( caractéristiques de l'ensemble de données)

Iris

1 https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_iris.html
Apprentissage non supervisé en Python

Tableaux, caractéristiques et échantillons

  • Tableau NumPy 2D
  • Les colonnes représentent des mesures (les caractéristiques)
  • Les lignes représentent les plantes d'iris (les échantillons)
Apprentissage non supervisé en Python

Les données Iris sont quadridimensionnelles

  • Les échantillons d'iris sont des points dans un espace à quatre dimensions
  • Dimension = nombre de caractéristiques
  • La dimension est trop élevée pour être visualisée.
  • … mais l'apprentissage non supervisé permet de mieux comprendre
Apprentissage non supervisé en Python

Regroupement par k-means

  • Identifie des groupes d'échantillons
  • Le nombre de groupes doit être spécifié
  • Mis en œuvre dans sklearn ("scikit-learn")
Apprentissage non supervisé en Python
print(samples)
[[ 5.   3.3  1.4  0.2]
 [ 5.   3.5  1.3  0.3]
 ...
 [ 7.2  3.2  6.   1.8]]
from sklearn.cluster import KMeans

model = KMeans(n_clusters=3)
model.fit(samples)
KMeans(n_clusters=3)
labels = model.predict(samples)

print(labels)
[0 0 1 1 0 1 2 1 0 1 ...]
Apprentissage non supervisé en Python

Étiquettes de cluster pour les nouveaux échantillons

  • De nouveaux échantillons peuvent être attribués à des groupes existants
  • k-means mémorise la moyenne de chaque cluster (les « centroïdes »)
  • Identifie le centroïde le plus proche de chaque nouvel échantillon
Apprentissage non supervisé en Python

Étiquettes de cluster pour les nouveaux échantillons

print(new_samples)
[[ 5.7  4.4  1.5  0.4]
 [ 6.5  3.   5.5  1.8]
 [ 5.8  2.7  5.1  1.9]]
new_labels = model.predict(new_samples)

print(new_labels)
[0 2 1]
Apprentissage non supervisé en Python

Diagrammes en nuages de points

  • Graphique de dispersion de la longueur des sépales par rapport à la longueur des pétales
  • Chaque point représente un échantillon d'iris
  • Points de couleur par étiquettes de groupes
  • PyPlot (matplotlib.pyplot)

Scatter plot

Apprentissage non supervisé en Python

Diagrammes en nuages de points

import matplotlib.pyplot as plt

xs = samples[:,0] ys = samples[:,2]
plt.scatter(xs, ys, c=labels)
plt.show()
Apprentissage non supervisé en Python

Passons à la pratique !

Apprentissage non supervisé en Python

Preparing Video For Download...