Agrupamiento de Caramelos con K-Means y Pandas
Clase 26 de 37 • Curso Profesional de Machine Learning con scikit-learn
Contenido del curso
- 8

Selección de Variables en Modelos de Aprendizaje Automático
06:56 - 9

Reducción de Dimensionalidad con Análisis de Componentes Principales
05:52 - 10

Reducción de Dimensionalidad y Regresión Logística con Python
09:57 - 11

Clasificación de Enfermedad Cardiaca con PCA y Regresión Logística
13:45 - 12

Funciones Kernel en la Clasificación de Datos Complejos
09:01 - 13

Regularización en Modelos de Machine Learning
07:39 - 14

Implementación de Regularización en Modelos de Regresión Lineal
15:19 - 15

Análisis de Resultados en Modelos de Regresión Ridge y Lasso
02:42 - 16
Regularización ElasticNet con Scikit-learn: Conceptos y Aplicación
01:41
- 28

Validación Cruzada en Modelos de Machine Learning
06:53 - 29

Validación Cruzada con Scikit-learn: Cruz Vales Cor y KFold
09:09 - 30

Optimización de Modelos con Búsqueda en Grilla y Aleatoria
07:22 - 31

Automatización de Parámetros en Modelos de Regresión con Random Forest
10:38 - 32
Optimización Automática de Modelos con Auto-sklearn
01:50
- 33

Estructuración Modular de Código Python para Machine Learning
10:17 - 34

Automatización de Modelos Machine Learning con Python
14:18 - 35

Publicación de Modelos de IA con Flask y Python
10:36 - 36

Optimización de Modelos de Machine Learning para Producción
00:42 - 37
Recursos para Aprender Machine Learning y Data Science
00:58
¿Cómo implementar un algoritmo de clustering con K-Means en Python?
Hoy vamos a adentrarnos en la implementación del algoritmo K-Means, específicamente usando el método de mini lotes (MiniBatch K-Means), para un clustering efectivo y eficiente. Utilizaremos un conjunto de datos que contiene características de 85 diferentes caramelos. El objetivo: obtener un análisis detallado de cómo agrupar estos caramelos de manera significativa.
¿Qué es el conjunto de datos de caramelos?
El conjunto de datos de caramelos cuenta con 85 tipos diferentes y varias características:
- Nombre del caramelo: Identificación del caramelo.
- Atributos en composición: Si contiene chocolate, frutas, etc.
- Porcentaje de azúcar: Cantidad relativa de azúcar respecto a otros caramelos.
- Porcentaje de precio: Precio comparativo con los demás.
- Preferencia del público: Proporción de veces que fue elegido en pruebas comparativas uno a uno.
¿Cómo preparamos los datos en Python?
Primero importamos las librerías necesarias y cargamos los datos en un DataFrame de pandas.
import pandas as pd
from sklearn.cluster import MiniBatchKMeans
# Cargar el archivo Candy.csv dentro del entorno de pandas
df = pd.read_csv('data/Candy.csv')
print(df.head(10)) # Verificar las primeras 10 filas
Es importante observar los datos para asegurarnos de haberlos cargado correctamente.
¿Qué es y cómo funciona MiniBatch K-Means?
MiniBatch K-Means es una variación del tradicional algoritmo K-Means, especialmente optimizado para funcionar en máquinas con recursos limitados. Funciona agrupando subconjuntos de datos (lotes) en vez de la totalidad, reduciendo así el uso de memoria y tiempo de cómputo.
¿Cómo configuramos y entrenamos el modelo?
En esta ocasión, vamos a configurar nuestro modelo para 4 clusters. Esta decisión se basa en la idea ficticia de una tienda que desea organizar sus dulces en 4 estanterías, basándose en sus similitudes.
# Configuración del modelo
kmeans = MiniBatchKMeans(n_clusters=4, batch_size=8)
# Entrenar el modelo con los datos
kmeans.fit(df.drop(columns=['nombre_caramelo']))
¿Cómo interpretamos los resultados?
Una vez entrenado el modelo, obtenemos:
- Centros de cluster: Verificamos que se han creado 4 centros como deseamos.
print(kmeans.cluster_centers_)
- Predicciones de cluster: Cada caramelo se categoriza en uno de los 4 clusters, facilitando la interpretación de a qué grupo se parece más un caramelo.
cluster_labels = kmeans.predict(df.drop(columns=['nombre_caramelo']))
df['cluster_label'] = cluster_labels
print(df.head())
¿Qué sigue después de la clasificación?
Con los clusters identificados, es posible:
- Exportar los resultados a un archivo para compartición o análisis futuro.
- Graficar datos para visualizar los clusters, si deseamos un análisis visual más intuitivo.
df.to_csv('clustered_candy.csv')
Este ejemplo de K-Means culmina con la integración de los datos y sus clusters en un único archivo, facilitando el análisis posterior. ¡Ahora depende de ti explorar y seguir aprendiendo sobre métodos de clustering y sus aplicaciones en diferentes áreas!