/ Proyectos / Agricultura / Segmentación de operarios de raleo
Segmentación de operarios de raleo y otros usos de aprendizaje no supervisado: clustering, grafos y GANs
Un proyecto en dos partes sobre la misma operación agroindustrial: comparar 4 algoritmos de clustering para segmentar operarios de raleo de uva, y usar segmentación por grafos y GANs para preparar datos visuales de inspección de calidad.
Este proyecto nace de una necesidad real de campo: Pedregal, empresa agroindustrial dedicada al cultivo de uva, necesitaba entender qué perfiles de operarios de raleo eran más productivos para diseñar mejores acciones de retención y selección. La respuesta no dependía de un solo algoritmo de clustering, sino de comparar varios y justificar cuál conviene con el contexto de negocio, no solo con la métrica más alta.
El proyecto tiene dos partes (folds) que comparten el mismo espíritu: no asumir un único método de aprendizaje no supervisado. La primera parte compara 4 algoritmos de clustering, K-Means, GMM, K-Medoids y Fuzzy C-Means, para segmentar a los operarios de raleo por productividad y perfil demográfico. La segunda parte explora otros dos usos de aprendizaje no supervisado que van más allá del clustering tabular, segmentación de imágenes con grafos y generación de datos sintéticos con GANs, aplicados aquí a un problema visual del mismo dominio: aislar el racimo de uva del fondo y compensar la escasez de fotos de racimos defectuosos.
Mapa del casoContenido
- Diagrama de la solución. Las dos ramas del proyecto, de las variables y las imágenes a la aplicación real
- Construcción de la solución. Cómo se comparó cada método y qué criterio decidió cuál usar
- Condiciones del proyecto. Restricciones reales y opciones descartadas antes de construir
- Pasos. Qué se dejó al agente y qué criterio se aplicó en cada uno, en ambos folds
- Proceso de iteración. El ajuste documentado entre versiones
- Descargables. Notebooks, diagrama y repositorio del proyecto
- Lecciones importantes. La lección concreta que deja este caso
Estructura de alto nivelDiagrama de la solución
Pasa el cursor sobre cada bloque para ver qué hace ese paso.
Las dos ramas se desarrollaron y evaluaron por separado, pero convergen en la misma lectura: en aprendizaje no supervisado no existe una única respuesta correcta, existe la mejor respuesta justificada para el contexto que tienes.
De la decisión al códigoConstrucción de la solución
Condiciones del proyecto
| Restricción | Dato |
|---|---|
| Universo de datos | Operarios de raleo de uva de Pedregal, campañas 19, 20 y 21, sedes Ica y Piura |
| Variables disponibles | Productividad, importe, antigüedad, edad, número de hijos, indicador de pobreza, distancia al fundo, y datos de bancarización (RCC) |
| Confidencialidad | Datos de RR.HH. y financieros del cliente, no publicables tal cual — el repositorio usa datos de ejemplo |
| Datos visuales (fold 2) | Fotos de racimos sanos abundantes; fotos de racimos con defectos escasas frente a las sanas |
| Opción | Por qué se descartó |
|---|---|
| Usar un solo algoritmo de clustering (K-Means) sin comparar | No hay evidencia de que sea el mejor ajuste para variables mixtas de desempeño humano sin comparar contra otros enfoques |
| DBSCAN como método principal de segmentación de operarios | No encontró separación de clusters — las variables de desempeño forman un continuo sin densidad diferenciada |
| Esperar a acumular más fotos reales de racimos defectuosos | Tomaría campañas completas; el desbalance frenaría el entrenamiento del clasificador de calidad mientras tanto |
| Comparar 4 algoritmos con doble métrica (K-Means, GMM, K-Medoids, FCM) + segmentación por grafos y GAN para el fold visual | Da evidencia comparativa real antes de elegir, y resuelve la escasez de datos visuales sin esperar más campañas |
Pasos
Fold 1 — Segmentación de operarios
Selección de variables y número óptimo de clusters
Agente: propuso fijar k=3 por convención, sin justificación estadística.
Criterio aplicado: usar el método del codo combinado con el score de Silhouette (KElbowVisualizer) sobre las 8 variables seleccionadas, para no imponer un número de segmentos de antemano.
Comparación de 4 algoritmos de clustering
Agente: sugirió quedarse solo con K-Means por ser el más común.
Criterio aplicado: entrenar también GMM, K-Medoids y Fuzzy C-Means sobre las mismas variables, y probar DBSCAN como referencia — DBSCAN no encontró clusters, lo que en sí mismo es información útil sobre la forma de los datos.
Evaluación con doble métrica
Agente: propuso reportar solo el error de clasificación del LDA.
Criterio aplicado: combinar el error de clasificación (consistencia interna del cluster) con el SS-between-cluster (separación entre grupos), porque un solo número no captura si los clusters son útiles para negocio.
Perfilamiento de los segmentos con variables de negocio
Agente: generó únicamente el promedio de productividad por cluster.
Criterio aplicado: cruzar cada cluster con edad, estado civil, hijos, distancia al fundo, antigüedad y variables financieras (RCC) para que cada segmento tuviera una historia accionable, no solo un número.
Fold 2 — Grafos y GANs
Segmentación de racimos con SLIC + corte normalizado
Agente: propuso segmentar directamente por umbral de color.
Criterio aplicado: generar primero superpíxeles con SLIC y construir un grafo RAG (Region Adjacency Graph) sobre ellos, porque el umbral simple falla con variaciones de luz e iluminación de campo.
Aislamiento del racimo con GrabCut
Agente: sugirió entrenar un modelo de segmentación supervisado desde cero.
Criterio aplicado: usar GrabCut con una inicialización mínima (un rectángulo) para obtener una máscara rápida sin necesitar miles de imágenes etiquetadas.
Generación de datos sintéticos con GAN
Agente: propuso resolver el desbalance solo con data augmentation clásico (rotaciones, flips).
Criterio aplicado: entrenar una GAN sobre la clase minoritaria de racimos defectuosos, porque el augmentation clásico no genera variabilidad nueva, solo transforma lo que ya existe.
Proceso de iteración
Ajuste documentado, no forzado
La primera corrida de DBSCAN sobre las variables de operarios devolvió casi todos los puntos como ruido (-1). En vez de forzar un epsilon distinto hasta que "funcionara", se documentó el resultado como evidencia de que las variables de desempeño humano no tienen la separación por densidad que DBSCAN necesita, y se avanzó con los 4 algoritmos basados en centroides o probabilidad. En el fold visual, las primeras máscaras de GrabCut con la inicialización por defecto dejaban cabello y ramas sin segmentar; se corrigió con una segunda pasada de máscara manual sobre las zonas mal etiquetadas, mejorando notablemente el resultado.
CierreLecciones importantes
La lección que atraviesa las dos partes de este proyecto es la misma: en aprendizaje no supervisado no hay una etiqueta correcta contra la cual validar, así que la única forma de confiar en un resultado es compararlo contra alternativas y contra el contexto real del negocio. Elegir K-Means porque "es el más conocido" no es una decisión, es una omisión. Comparar 4 algoritmos con dos métricas distintas, y documentar incluso el que falló (DBSCAN), es lo que convierte un ejercicio de clustering en un análisis defendible ante un comité de tesis o un equipo de negocio.
La segunda parte deja una lección complementaria: el aprendizaje no supervisado no es solo clustering. La segmentación por grafos resuelve un problema de percepción (separar objeto de fondo) sin miles de imágenes etiquetadas, y las GANs resuelven un problema de escasez de datos (pocos ejemplos de la clase que más importa) generando variabilidad genuina en vez de solo transformar lo que ya existe.
Termina ya tu proyecto
¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.
El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.
Sin registro. Acceso inmediato