Lección 6 del curso Clustering en el Machine Learning.
En la lección anterior vimos qué es y cómo usar el método DBSCAN para realizar el agrupamiento de datos.
En DBSCAN el «clustering» se realiza analizando la densidad existente en las diferentes regiones de nuestro set de datos. Sin embargo, una de las limitaciones de este método es que tiende a encontrar un excesivo número de puntos ruido en el set de datos, lo que puede limitar su uso al momento de caracterizar diferentes agrupaciones. De igual forma, otra limitación es que no logra detectar agrupaciones con densidades diferentes.
Así que en esta lección veremos qué es y cómo realizar el agrupamiento de datos con el método DBSCAN jerárquico (o HDBSCAN por sus siglas en Inglés). Entonces, veremos en detalle cómo funciona el algoritmo así como dos ejemplos prácticos de implementación en Python con ayuda de la librería Scikit-Learn.
Comencemos entonces viendo cómo funciona HDBSCAN:
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, HDBSCAN logra generar agrupaciones con base en la densidad de las regiones, con la gran ventaja (frente al método DBSCAN) de que dichas regiones pueden tener diferentes rangos de densidad.
Y para lograr esto, HDBSCAN construye primero todos los clusters posibles a distintas densidades (de allí el enfoque jerárquico) y luego elige automáticamente las agrupaciones más estables, sin necesidad de definir un parámetro «epsilon» similar al usado en DBSCAN.
Así que teniendo claro este principio de funcionamiento, veamos un primer ejemplo de uso de HDBSCAN en 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.
En el ejemplo anterior vimos que la manera de implementar un modelo HDBSCAN con ayuda de Scikit-Learn es muy similar a la que vimos en las lecciones anteriores para otros métodos de clustering. En esencia, primero debemos elegir los hiper-parámetros del modelo (en este caso «min_samples» y «min_cluster_size») usando como referencia el puntaje silueta. Y posteriormente creamos la instancia del modelo y luego usamos el método «fit_predict» para etiquetar los datos.
Así que con esto ya estamos listos para abordar el problema de segmentación de clientes visto en la lección anterior y haciendo uso precisamente de este método HDSBCAN:
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.
Acabamos de ver que para el caso particular del set de datos que hemos venido usando desde las lecciones anteriores, el método HDBSCAN arroja resultados similares al momento de caracterizar los diferentes segmentos de cliente. En últimas, como lo hemos venido mencionando a lo largo del curso, no existe un método de «clustering» mejor que otro y todo dependerá al final de las características particulares de nuestro set de datos.
Así que teniendo claro cómo funciona el método HDBSCAN, en la próxima lección veremos un método que en lugar de analizar la densidad de las agrupaciones, construye los diferentes «clusters» con base en una estimación de su distribución de probabilidad. Así que hablaremos en detalle de los métodos de clustering con Modelos de Mezcla Gaussiana.
Todas las lecciones del curso Clustering en el Machine Learning
