El análisis de agrupamiento es un problema importante en el análisis de datos y hoy en día, DBSCAN es una de las técnicas de análisis de clústeres más populares. Como lo explicamos anteriormente DBSCAN es un algoritmo de clúster o agrupamiento basado en la densidad que puede ser utilizado para identificar clústeres de cualquier forma en un conjunto de datos que contiene ruido y valores atípicos.
La idea básica detrás del enfoque de agrupamiento basado en la densidad se deriva de un método intuitivo de agrupamiento humano. Por ejemplo, al mirar la figura, uno puede identificar fácilmente tres grupos junto con varios puntos de ruido, debido a las diferencias en la densidad de puntos.
Los clústeres son regiones densas en el espacio de datos, separadas por regiones de menor densidad de puntos. El algoritmo DBSCAN se basa en esta noción intuitiva de clústeres y ruido. La idea clave es que, para cada punto de un clúster, la vecindad de un radio dado tiene que contener al menos un número mínimo de puntos.
Veamos cómo implementar este algoritmo utilizando una de las librerías más importante de Machine Learning en Python, como lo es Scikit Learn.
Veamos primeros los métodos que podemos utilizar para posterior ver detalladamente los parámetros que podemos utilizar para configurar el algoritmo y obtener mejores resultados.
El primer paso que tienes que hacer es importar el modulo DBSCAN desde sklearn.cluster. Recuerda que este es un algoritmo de agrupamiento por lo que es normal que se encuentre dentro del modulo “cluster”.
Realizado esto analizamos los parámetros que podemos implementar junto con el algoritmo DBSCAN, estos no son muy distintos a los que se aplican dentro de los algoritmos de Aprendizaje Supervisado, pero la forma de implementarlos es un poco distinta.
El primero será fit(), con el cual puedes entrenar el modelo. Acá solamente debes utilizar los datos correspondientes a X, que vendrían siendo los datos de entrenamiento.
Recuerda que para los algoritmos de Aprendizaje no Supervisado no se utiliza los valores de “y” o lo que vendría siendo los datos dependientes ya que acá nos enfocamos básicamente en entender los datos más que predecir un valor específico como se hace en el Aprendizaje Supervisado.
El siguiente método será fit_predict(), con el cual podemos entrenar el algoritmo y también realizar una predicción. Con este método utilizamos las muestras de nuestros datos en vez de los valores con el que se entreno el algoritmo.
La diferencia entre fit() y fit_predict(), es que en el primer caso utilizas tus datos de entrenamiento mientras que en el segundo utilizas los datos de prueba o los que quieres predecir. En pocas palabras fit_predict() sería algo similar al método predict() en los algoritmos de Aprendizaje Supervisado.
Una vez implementados estos métodos junto al algoritmo obtendremos el número de clúster asociado a cada dato que realizamos la predicción.
Estos serán los métodos que se usan generalmente al momento de implementar el algoritmo de Aprendizaje no Supervisado DBSCAN.
Expliquemos ahora los parámetros que podemos configurar para el algoritmo. Recuerda que estos parámetros lo que harán es que tengas un mejor control sobre el algoritmo DBSCAN y podamos mejor los resultados del modelo.
El primer parámetro a definir será eps o épsilon, como lo explicamos en la teoría de este algoritmo, épsilon vendría siendo la distancia máxima entre dos muestras para que una sea considerada como el clúster de la otra. Este es el parámetro más importante de DBSCAN por lo que se debe elegir apropiadamente para el conjunto de datos y la función de distancia que se está trabajando. Por defecto, este valor es de 0,5 pero se puede modificar por cualquier otro número flotante.
El siguiente parámetro es mínimo de muestras o puntos, este será el número mínimo de puntos para formar un clúster. Por defecto este valor es de 5 pero tu puedes cambiarlo por cualquier otro valor entero.
El último parámetro que normalmente se configura para este algoritmo es el de métrica, acá se define el tipo de métrica a utilizar cuando se calcula la distancia entre los puntos de un conjunto de características. Por defecto, este parámetro es euclidiano, pero tu puedes configurarlo con alguna métrica “precalculada” por tu parte.
Estos serán parámetros más importantes y que debes considerar al momento de configurar el algoritmo DBSCAN.
Con toda esta información podemos configurar correctamente el algoritmo DBSCAN y desarrollar un buen modelo junto a los datos con que se este trabajando. De igual forma, una vez construido el modelo se puede obtener la información necesaria para ser presentada posteriormente alas personas interesadas.