• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

3 – Clustering con K-Means

Lección 3 del curso Clustering en el Machine Learning.

En la lección anterior vimos cuáles son las métricas de distancia y de evaluación de agrupaciones más usadas en los métodos de clustering.

En este segundo módulo del curso veremos dos de los métodos más simples para realizar agrupamiento de datos: el agrupamiento con K-Means y los métodos de agrupamiento jerárquico.

En particular, en esta lección veremos en detalle qué es y cómo se usa el algoritmo K-means para realizar agrupamiento de datos. Así que vamos a entender cómo funciona este algoritmo, así como un ejemplo básico de uso en Python con ayuda de Scikit-Learn. Luego veremos algunas limitaciones de este método y al final veremos un ejemplo completo de clustering con K-Means en Python haciendo uso de un set de datos real.

Comencemos entonces entendiendo el principio de funcionamiento del algoritmo K-Means:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

En esencia el algoritmo K-means requiere que definamos inicialmente el número de agrupaciones a obtener (es decir el parámetro k) y luego, de manera iterativa, lo que hace el algoritmo es calcular el centroide de cada agrupación. Y la idea es que la ubicación de estos centroides y las etiquetas asignadas a cada agrupación se refinan en cada iteración.

Teniendo claro este sencillo principio de funcionamiento, veamos un ejemplo simple de uso de K-Means con ayuda de la librería Scikit-Learn de Python:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, realmente es muy sencillo resolver un problema de agrupamiento de datos con K-Means en Scikit-Learn.

En esencia simplemente creamos una instancia del módulo «KMeans» y definiendo el número de clusters (parámetro k). Después usamos el método «fit_transform» aplicado al set de datos y como resultado obtendremos las etiquetas o los clusters calculados por este método. Además, vimos cómo usar el puntaje silueta para determinar el número ideal de agrupaciones.

Así que a continuación vamos a entender de forma práctica cuáles son las principales limitaciones de este algoritmo K-Means:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Entonces podemos resumir a continuación las limitaciones de este método:

  • No funciona adecuadamente si las agrupaciones no tienen una simetría esférica
  • Es sensible a la inicialización
  • Es sensible a la escala de los datos (es decir que para que funcione adecuadamente debemos llevar todas las características de nuestros datos a la misma escala)
  • Es sensible a la presencia de valores extremos
  • Y no logra discriminar adecuadamente una agrupación de otra cuando la dimensionalidad del dataset es alta (lo que se conoce como la «maldición de la dimensionalidad»)

Así que en este punto ya tenemos claro el principio de funcionamiento de K-Means y ya hemos visto un sencillo ejemplo de implementación y las principales limitaciones del algoritmo. Entonces, en esta última parte de la lección veremos cómo usar este método de agrupamiento para resolver un problema con un set de datos real:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Muy bien, acabamos de ver cómo abordar un problema de agrupamiento usando K-Means y un set de datos real.

En este caso usamos un set de datos con información asociada a diferentes países del mundo. Cada país se caracteriza por un total de 5 variables numéricas y esto hace que la dimensionalidad de nuestro set de datos sea alta.

Así que vimos cómo realizar el pre-procesamiento de los datos (para garantizar que todas las variables estuviesen en la misma escala) y cómo escoger el número ideal de agrupaciones. Y una vez obtenidas dichas agrupaciones, con ayuda de K-Means, vimos cómo caracterizarlas usando herramientas descriptivas y gráficos de coordenadas paralelas.

Además, vimos cómo usar el análisis de componentes principales para reducir la dimensionalidad del dataset y lograr de esta forma obtener un gráfico en dos dimensiones que nos permitió interpretar las agrupaciones obtenidas.

Así que con todo esto ya tenemos los elementos conceptuales y prácticos que nos permitirán hacer uso del agrupamiento con el método K-Means en nuestros proyectos.

Entonces, en la próxima lección hablaremos del clustering jerárquico, otro conjunto de métodos que resultan fundamentales al momento de crear agrupaciones sobre nuestros datos en un proyecto de Machine Learning.

Todas las lecciones del curso Clustering en el Machine Learning

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }