Identifica Clusters con DBSCAN: Algoritmo paso a paso e implementación con Python

Поделиться
HTML-код
  • Опубликовано: 7 янв 2025

Комментарии • 39

  • @CodigoMaquina
    @CodigoMaquina  2 года назад +3

    👉 Xiperia ofrece consultoría empresarial que transforma datos en conocimiento accionable para alcanzar los objetivos de tu negocio. Conoce más en www.xiperia.com

  • @samuelivannoya267
    @samuelivannoya267 2 года назад +6

    Sos un capo!!!!!!!!!!!!!!!!!!!!!!!! Muy bien explicado!!!! Muchas gracias!!! Saludos desde Chaco Argentina.

    • @CodigoMaquina
      @CodigoMaquina  2 года назад

      Muchas gracias por tus comentarios. Un abrazo desde México :)

  • @diegohd4266
    @diegohd4266 10 месяцев назад +1

    ¡Brutal algoritmo! Hasta se me antoja hacer mi tesis al respecto 😅

  • @ArturoDelgado-xk8qj
    @ArturoDelgado-xk8qj Год назад +2

    Gracia por el video! Explicas las cosas de una manera que resulta sencilla de entender!

    • @CodigoMaquina
      @CodigoMaquina  Год назад

      @ArturoDelgado-xk8qj gracias por tus comentarios y un muy feliz año!!!

  • @adrianromancebrian1086
    @adrianromancebrian1086 2 года назад +5

    te descubro con este video, estudio ciencia de datos en la universidad de valencia. Muchas gracias por hacer el contenido tan facil de comprender, un saludoo. : )

    • @CodigoMaquina
      @CodigoMaquina  2 года назад

      Bienvenido a esta comunidad Adrian, gracias por tu comentarios. Saludos!!

  • @guillermorosas3398
    @guillermorosas3398 3 месяца назад

    es usted un master, explico algo complejo, con una sencillez, mis respetos!!

    • @CodigoMaquina
      @CodigoMaquina  3 месяца назад

      Gracias por tus comentarios 😊

  • @SR_M0L1NA
    @SR_M0L1NA 7 месяцев назад

    Hace años hice una cosa similar sin conocer que existía este método. Epsilon lo definí como radio a partir del cual si un punto estaba dentro de ese radio pertenecía al mismo agrupamiento. Para calcular el radio (epsilon) lo hice escogiendo el mínimo entre el percentil 2 y la raiz cuadrada de la desviación típica de la matriz de distancias. No tuve en cuenta los puntos a escoger, sólo las distancias.

  • @jortigasperu
    @jortigasperu Год назад +1

    Gracias Profe..

    • @CodigoMaquina
      @CodigoMaquina  Год назад

      José gracias por comentar y por seguir el contenido del canal :)

  • @joseleonardosanchezvasquez1514
    @joseleonardosanchezvasquez1514 2 года назад +2

    Genial como siempre, te comento que hubiera sido bueno ver los datos en un dataframe, solo para efectos de visualización. Pero la explicación muy buena.
    Por otro lado, disculpa leí el comentario que tenias pero no entendí mucho la respuesta a, la podrías desglosar un poco mas.
    Es sobre la pregunta del predict, es"" Otra opción que alguna vez leí es etiquetar una nueva instancia en función del punto CORE que esté más cerca "".

    • @CodigoMaquina
      @CodigoMaquina  2 года назад +1

      Muchas gracias por tus comentarios. Esa respuesta está asociada a una pregunta de alguien que deseaba utilizar DBSCAN (una técnica no supervisada) como técnica de clasificación (supervisada) para etiquetar nuevos datos. Y sugerí que una opción podría ser simplemente asignarle la etiqueta del cluster más cercano, lo cual se traduce en asignarle la etiqueta del punto CORE más cercano.

  • @garcia3137
    @garcia3137 10 месяцев назад

    Excelente explicación!

    • @CodigoMaquina
      @CodigoMaquina  Месяц назад

      Muchas gracias por seguir el contenido del canal!!!

  • @guillermoucedacampos6130
    @guillermoucedacampos6130 Год назад +1

    Muy bien explicado. Me gustaría saber cómo puedo definir los parámetros eps y min _samples, comentaste que por experimentación, podrás dar alguna idea de cómo hacerlo? Gracias

    • @JenryLuis
      @JenryLuis Год назад +2

      Por experimentacion se refiere a que pruebes un rango de valores para eps y min_samples. Ejecutas varias veces con los diferentes valores. saludos!

    • @CodigoMaquina
      @CodigoMaquina  Год назад +1

      Hola @guillermoucedacampos6130. Gracias por tus comentarios y por la pregunta. La respuesta de @JenryLuis aquí abajo es muy buena. Gracias por seguir el contenido del canal :)

    • @CodigoMaquina
      @CodigoMaquina  Год назад +1

      @JenryLuis muchas gracias por apoyar a otras personas con sus dudas. Es una muy buena persona :)

  • @Chris-rc7vx
    @Chris-rc7vx 2 года назад +3

    Si usamos DBSCAN en los datos de entrenamiento ¿cómo le asignamos las etiquetas a nuevas observaciones(p.e. datos de validación)?

    • @CodigoMaquina
      @CodigoMaquina  2 года назад +4

      Me encantó esta pregunta. Gracias por plantearla. DBSCAN en scikit-learn no tiene un método predict dado que no es un clasificador en sí. Sin embargo, esto no implica que no se puedan etiquetar nuevas instancias. Podríamos lograr ese objetivo indirectamente. Por ejemplo, con los resultados de los clusters se puede entrenar un clasificador y posteriormente con ese clasificador etiquetar nuevas instancias. Otra opción que alguna vez leí es etiquetar una nueva instancia en función del punto CORE que esté más cerca. Esto involucraría programar un poco pero no sería tan complicado dado que el mismo modelo de DBSCAN tiene un atributo que nos regresa los índices de todos los puntos CORES -> 'core_sample_indices_ '. Muchas gracias por hacer esta pregunta y por ver el canal :)

    • @Chris-rc7vx
      @Chris-rc7vx 2 года назад +1

      @@CodigoMaquina Muy interesante ambas alternativas me parece muy razonable la segunda, gracias por la respuesta. ¡Saludos!

  • @constanzaonetti5919
    @constanzaonetti5919 Год назад +2

    Hola, que pasa si me marca todos -1 (es decir todos ruido) que puede estar pasando?

    • @CodigoMaquina
      @CodigoMaquina  Год назад +1

      Hola @constanzaonetti5919 gracias por la pregunta. Sin tener mucho contexto de tus datos y código ¿qué tal si pruebas diferentes valores de épsilon? Gracias por interactuar con el contenido del canal :)

  • @julianarturomejiaespitia4479
    @julianarturomejiaespitia4479 Год назад +2

    Buenas noches, si trabajo con mas de 2 variables, deberia realizar alguna reduccion de dimensionalidad? o como podria trabajar con DBSCAN para estos tipos de datos. Gracias

    • @CodigoMaquina
      @CodigoMaquina  Год назад +3

      Julian gracias por la pregunta. Te comento que DBSCAN puede trabajar directamente con 2 o más variables/dimensiones. Aquí va un ejemplo para tres dimensiones:
      from sklearn.cluster import DBSCAN
      import numpy as np
      # creación de datos tridimensionales aleatorios
      np.random.seed(8)
      X = np.random.randn(90).reshape((30, 3))
      # clusterización de los datos
      clustering = DBSCAN(eps=0.8, min_samples=2).fit(X)
      clustering.labels_

  • @elizabethguevara9534
    @elizabethguevara9534 2 года назад +1

    Como se hace cuándo te dan dos valores de x y no tenes una variable y. Por ejemplo un cliente tiene 2 coordendas x1 y x2 donde x1 es lo primero q ve y x2 lo segundo q ve en la pagina web. Me podria orientar

    • @CodigoMaquina
      @CodigoMaquina  2 года назад

      Elizabeth gracias por ver el contenido del canal y por tu pregunta. Sin conocer el contexto del proyecto, aquí van algunos comentarios que tal vez puedan ayudar. Un primer paso que se podría realizar sería definir una potencial hipótesis a explorar, es decir, en función de tus objetivos, plantea una pregunta (asociada a tus datos) que te gustaría responder. Por ejemplo, algunas preguntas podrían ser ¿existe en una relación entre x1 y x2? ¿existen agrupamientos entre los clientes en función de x1 y x2? Si tienes otros datos, por ejemplo, si el cliente realizó o no una compra, podrías preguntarte ¿si es posible diferenciar a los compradores de los no compradores en función de x1 y x2? Estas preguntas se definen a partir de tus objetivos de negocio, lo cual te ayudará a determinar el tipo de técnica a utilizar, por ejemplo: clasificación o clusterización.

    • @elizabethguevara9534
      @elizabethguevara9534 2 года назад

      @@CodigoMaquina solo tengo 2 datos x1 en coordenadas x lo primero que ve el cliente, x2 lo segundo q ve en coordenadas x tambien

  • @JhonDrock
    @JhonDrock 10 месяцев назад

    excelente

    • @CodigoMaquina
      @CodigoMaquina  Месяц назад

      Muchas gracias por seguir el contenido del canal!!!

  • @mauriciodiaz7467
    @mauriciodiaz7467 10 месяцев назад

    Suscrito

  • @pegazo1404881
    @pegazo1404881 2 года назад +1

    Dónde conseguir una base de 5 mil líneas para hacer un ejercicio similar?

    • @CodigoMaquina
      @CodigoMaquina  2 года назад

      El archivo que utilizo en este video lo puedes descargar de nuestro repositorio en github:
      github.com/CodigoMaquina/code/blob/main/datos/casas.csv
      Sin embargo, si deseas conocer muchos otros lugares donde podrías conseguir datos similares y más, te recomiendo echarle un ojo al siguiente video donde damos algunos tips:
      ruclips.net/video/lIPCpPd0YuI/видео.html

    • @pegazo1404881
      @pegazo1404881 2 года назад

      @@CodigoMaquina gracias, les escribí al Face

  • @alexanderfish9683
    @alexanderfish9683 11 месяцев назад +1

    en 1.5 evitas dormirte con su explicacion