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

Codificando Bits

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

5 – DBSCAN: clustering basado en densidad

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

En la lección anterior vimos en qué consiste el clustering jerárquico, uno de los métodos de Machine Learning más usados para generar agrupaciones de datos de forma automática.

En esta lección veremos en detalle el algoritmo DBSCAN, un método de clustering que permite agrupar datos con base en su densidad. Así que veremos en detalle el principio de funcionamiento de este método así como ejemplos prácticos de uso del algoritmo con ayuda de Python y de la librería Scikit-Learn.

Comencemos entonces entendiendo la idea intuitiva de este método DBSCAN y los detalles del algoritmo:

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, el algoritmo DBSCAN permite generar agrupaciones usando como criterio la densidad de los datos.

Así, el algoritmo analiza cada punto del set de datos y verifica cuántos datos vecinos cercanos tiene. Y si el punto supera un cierto umbral de vecinos se considera parte de una agruupación y «arrastra» consigo a sus demás vecinos. Y por otra parte, los puntos en regiones de «baja» densidad son considerados como ruido u «outliers».

Y para que este algoritmo funcione debemos definir adecuadamente el tamaño de la vecindad («epsilon») así como el umbral de vecinos para considerar que la región es densa en una vecindad en particular («minpts»).

Teniendo claros los detalles de funcionamiento de este algoritmo DBSCAN, veamos ahora un primer ejemplo práctico de implementación con ayuda de la librería Scikit-Learn:

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 que acabamos de analizar pudimos comprobar que DBSCAN logra generar agrupaciones en sets de datos donde la simetría no es totalmente esférica (lo cual no ocurre por ejemplo con métodos como K-Means).

Además, vimos que el puntaje silueta no necesariamente es siempre la mejor métrica para cuantificar la calidad de las agrupaciones generadas, pues implícitamente asume que dichas agrupaciones tienen precisamente una simetría esférica (lo cuál no es necesariamente válido en un problema real). Así que en un problema real lo que se sugiere es complementar el puntaje silueta con otras métricas que nos ayuden a decidir cuál método de clustering resulta siendo más adecuado para nuestros datos.

Así que teniendo claros todos estos conceptos y la forma como podemos usar el algoritmo DBSCAN con ayuda de Scikit-Learn, en el siguiente video veremos una aplicación práctica de este método de agrupamiento para abordar un problema de segmentación de clientes:

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 aplicar el algoritmo DBSCAN a la solución de un problema de segmentación de clientes, una situación muy común en proyectos de Ciencia de Datos.

En particular vimos que las fases a llevar a cabo consisten en la exploración de los datos, la estimación de los parámetros del algoritmo (epsilon y el mínimo número de puntos), la construcción del modelo con los parámetros ideales, la creación de los clusters y finalmente la caracterización de cada segmento de cliente.

Como vimos, uno de los retos al momento de usar el algoritmo DBSCAN es que el modelo puede ser muy sensible a los valores del parámetro epsilon. Y de hecho, la misma escogencia de este valor puede resultar no trivial si tenemos sets de datos muy grandes.

Adicionalmente, como lo vimos en el último ejemplo, en ocasiones DBSCAN 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.

Así que partiendo de estas limitaciones, en la próxima lección veremos qué es y cómo funciona HDBSCAN, que permite realizar el clustering jerárquico de datos con base en su densidad y que en muchas ocasiones suele ser más robusto que DBSCAN.

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 }