Apprentissage non supervisé : Recherche de représentations des données

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, nous explorerons le concept d'apprentissage non supervisé, en particulier le regroupement et la décomposition. L'apprentissage non supervisé est un type d'apprentissage automatique où nous n'avons pas de données étiquetées pour entraîner. Au lieu de cela, nous essayons de trouver des modèles ou des structures dans les données sans avoir de connaissances antérieures. Le regroupement est une technique d'apprentissage non supervisé couramment utilisée pour regrouper des observations similaires. La décomposition, en revanche, est utilisée pour trouver une représentation en dimension réduite des données en extrayant les caractéristiques ou les composants les plus importants.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 91%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Regroupement avec K-means

La première technique que nous allons explorer est le regroupement en utilisant l'algorithme K-means. K-means est un algorithme de regroupement populaire qui vise à diviser les observations en groupes bien séparés appelés clusters. Utilisons l'ensemble de données Iris comme exemple pour démontrer le regroupement avec K-means.

from sklearn import cluster, datasets

## Chargez l'ensemble de données Iris
X_iris, y_iris = datasets.load_iris(return_X_y=True)

## Effectuez un regroupement K-means
k_means = cluster.KMeans(n_clusters=3)
k_means.fit(X_iris)

## Affichez les étiquettes de cluster
print(k_means.labels_)

Évaluation du regroupement

Après avoir effectué le regroupement, il est important d'évaluer les résultats. Cependant, dans l'apprentissage non supervisé, nous n'avons pas accès aux étiquettes de vérité terrain. Par conséquent, il faut être prudent lors de l'interprétation des résultats de regroupement. Il est courant d'évaluer les résultats de regroupement sur la base de métriques telles que le score silhouette et la somme des carrés intra-classe. Ces métriques peuvent fournir des informations sur la qualité du regroupement.

Quantification vectorielle

Une application du regroupement est la quantification vectorielle, où nous utilisons le regroupement pour choisir un nombre réduit d'exemplaires pour compresser l'information. Par exemple, nous pouvons utiliser le regroupement pour posteriser une image :

import numpy as np
from sklearn import cluster, datasets
from sklearn.datasets import load_sample_image
import matplotlib.pyplot as plt

## Chargez une image d'échantillonnage
image = load_sample_image("china.jpg")
## Convertissez en niveaux de gris
gray_image = image.mean(axis=2)

X = gray_image.reshape((-1, 1))

## Effectuez un regroupement K-means
k_means = cluster.KMeans(n_clusters=5, n_init=1)
k_means.fit(X)

## Compressez l'image à l'aide des centres de cluster
values = k_means.cluster_centers_.squeeze()
labels = k_means.labels_
face_compressed = np.choose(labels, values)
face_compressed.shape = gray_image.shape

## Affichez les images d'origine et compressée
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.imshow(gray_image, cmap='gray')
plt.title('Image d\'origine')

plt.subplot(1, 2, 2)
plt.imshow(face_compressed, cmap='gray')
plt.title('Image compressée')

plt.show()

Sommaire

Dans ce laboratoire, nous avons exploré les concepts d'apprentissage non supervisé, en particulier le regroupement et la décomposition. Nous avons appris sur le regroupement K-means, le regroupement agglomératif hiérarchique, l'agglomération de caractéristiques, l'analyse en composantes principales (PCA) et l'analyse en composantes indépendantes (ICA). Ces techniques sont précieuses pour découvrir des modèles et des structures dans les données non étiquetées et pour trouver des représentations en dimension réduite qui capturent les informations les plus importantes.