Aprendizaje no supervisado: Buscando representaciones de los datos

Machine LearningMachine LearningBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos el concepto de aprendizaje no supervisado, específicamente agrupamiento y descomposición. El aprendizaje no supervisado es un tipo de aprendizaje automático en el que no tenemos datos etiquetados para entrenar. En cambio, intentamos encontrar patrones o estructuras en los datos sin ningún conocimiento previo. El agrupamiento es una técnica común de aprendizaje no supervisado que se utiliza para agrupar observaciones similares. La descomposición, por otro lado, se utiliza para encontrar una representación de baja dimensión de los datos extrayendo las características o componentes más importantes.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-71101{{"Aprendizaje no supervisado: Buscando representaciones de los datos"}} end

Agrupamiento utilizando K-means

La primera técnica que exploraremos es el agrupamiento utilizando el algoritmo K-means. K-means es un algoritmo de agrupamiento popular que tiene como objetivo dividir las observaciones en grupos bien separados llamados clusters. Usemos el conjunto de datos Iris como ejemplo para demostrar el agrupamiento con K-means.

from sklearn import cluster, datasets

## Cargar el conjunto de datos Iris
X_iris, y_iris = datasets.load_iris(return_X_y=True)

## Realizar el agrupamiento K-means
k_means = cluster.KMeans(n_clusters=3)
k_means.fit(X_iris)

## Imprimir las etiquetas de los clusters
print(k_means.labels_)

Evaluación del agrupamiento

Después de realizar el agrupamiento, es importante evaluar los resultados. Sin embargo, en el aprendizaje no supervisado, no tenemos acceso a las etiquetas de verdad de referencia. Por lo tanto, debemos ser cautelosos al interpretar los resultados del agrupamiento. Es común evaluar los resultados del agrupamiento en base a métricas como la puntuación de silueta y la suma de cuadrados dentro de los clusters. Estas métricas pueden proporcionar información sobre la calidad del agrupamiento.

Cuantización de vectores

Una aplicación del agrupamiento es la cuantización de vectores, donde usamos el agrupamiento para elegir un número pequeño de ejemplares para comprimir información. Por ejemplo, podemos usar el agrupamiento para posterizar una imagen:

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

## Cargar una imagen de muestra
image = load_sample_image("china.jpg")
## Convertir a escala de grises
gray_image = image.mean(axis=2)

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

## Realizar el agrupamiento K-means
k_means = cluster.KMeans(n_clusters=5, n_init=1)
k_means.fit(X)

## Comprimir la imagen usando los centros de los clusters
values = k_means.cluster_centers_.squeeze()
labels = k_means.labels_
face_compressed = np.choose(labels, values)
face_compressed.shape = gray_image.shape

## Mostrar las imágenes original y comprimida
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.imshow(gray_image, cmap='gray')
plt.title('Imagen Original')

plt.subplot(1, 2, 2)
plt.imshow(face_compressed, cmap='gray')
plt.title('Imagen Comprimida')

plt.show()

Resumen

En este laboratorio, exploramos los conceptos de aprendizaje no supervisado, específicamente el agrupamiento y la descomposición. Aprendimos sobre el agrupamiento K-means, el agrupamiento jerárquico aglomerativo, la aglomeración de características, el análisis de componentes principales (PCA, por sus siglas en inglés) y el análisis de componentes independientes (ICA, por sus siglas en inglés). Estas técnicas son valiosas para descubrir patrones y estructuras en datos no etiquetados y encontrar representaciones de baja dimensión que capturen la información más importante.