Cómo crear un modelo de aprendizaje no supervisado con dbscan

DBSCAN (Densidad-Basado agrupación espacial de aplicaciones con ruido) es un algoritmo de agrupamiento popular usado como alternativa a la k-medias en el análisis predictivo. No se requiere que introduzca el número de grupos con el fin de ejecutar. Pero a cambio, tiene que sintonizar otros dos parámetros.

La aplicación scikit-learn proporciona un valor predeterminado para las EPS y parámetros min_samples, pero por lo general se espera que los melodía. El parámetro eps es la distancia máxima entre dos puntos de datos para ser considerado en el mismo vecindario. El parámetro min_samples es la cantidad mínima de puntos de datos en un barrio para ser considerado un clúster.

Una de las ventajas que tiene sobre DBSCAN K-means es que DBSCAN no se limita a un número determinado de grupos durante la inicialización. El algoritmo determinará un número de grupos en base a la densidad de una región.

Tenga en cuenta, sin embargo, que el algoritmo depende de las EPS y parámetros min_samples de averiguar cuál debe ser la densidad de cada clúster. La idea es que estos dos parámetros son mucho más fáciles de elegir por algunos problemas de agrupamiento.

En la práctica, debería probar con múltiples algoritmos de agrupamiento.

Debido a que el algoritmo de DBSCAN tiene un concepto integrado de ruido, que es comúnmente utilizado para detectar anomalías en los datos - por ejemplo, la actividad fraudulenta en tarjetas de crédito, el comercio electrónico, o las reclamaciones de seguros.

Cómo ejecutar el conjunto de datos completo

Tendrá que cargar el conjunto de datos del iris en su sesión de Python. Este es el procedimiento:

  1. Abrir una nueva sesión intérprete interactivo de Python.

    Utilice una nueva sesión de Python para que la memoria es clara y tiene una pizarra limpia para trabajar.

  2. Pegar el código siguiente en el indicador y observar la salida:

    gt; gt; gt; de sklearn.datasets importar load_irisgt; gt; gt; iris = load_iris ()

    Después de ejecutar estas dos afirmaciones, no se debe ver ninguna mensajes del intérprete. El iris variable debe contener todos los datos del archivo de iris.csv.

    Video: Red Neuronal Artificial aplicada a Ventas Modelo con Joone en Hoja de Cálculo Excel

  3. Crear una instancia de DBSCAN. Escriba el siguiente código en el intérprete:

    gt; gt; gt; de sklearn.cluster DBSCANgt importación; gt; gt; DBSCAN = DBSCAN (random_state = 111)

    La primera línea de código importa la biblioteca DBSCAN en la sesión para su uso. La segunda línea crea una instancia de DBSCAN con valores predeterminados para EPS y min_samples.

  4. Comprobar qué parámetros se utilizaron escribiendo el siguiente código en el intérprete:

    gt; gt; gt; dbscanDBSCAN (eps = 0,5, = métricas `euclidiana`, min_samples = 5, random_state = 111)
  5. Ajustar los datos del iris en el algoritmo de agrupamiento DBSCAN escribiendo el siguiente código en el intérprete:

    gt; gt; gt; dbscan.fit (iris.data)
  6. Para comprobar los resultados, coloque el código siguiente en el intérprete:

    gt; gt; gt; dbscan.labels_array ([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. , 0., 0., 0., 0., 0., 0., 0., 0., 0., -1., 0., 0., 0., 0., 0., 0., 0., 0., 1, 1., 1., 1., 1., 1., 1., -1, 1., 1, -.... 1, 1., 1., 1., 1., 1., 1., 1., -1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1 ., 1., 1., 1., 1., 1., 1., -1., 1., 1., 1., 1., 1., -1., 1., 1., 1 ., 1., -1., 1., 1., 1., 1., 1., 1., -1., -1., 1., -1., -1., 1., 1 ., 1., 1., 1., 1., 1., -1., -1., 1., 1., 1., -1., 1., 1., 1., 1., 1., 1., 1., 1., -1., 1., 1., -1., -1., 1., 1., 1., 1., 1., 1., 1. , 1., 1., 1., 1., 1., 1., 1.])

    Si se mira muy de cerca, verá que DBSCAN produjo tres grupos (-1, 0 y 1).

Cómo visualizar las agrupaciones

Vamos a obtener un gráfico de dispersión de la salida DBSCAN. Escriba el siguiente código:

gt; gt; gt; de sklearn.decomposition PCAgt importación; gt; gt; PCA = PCA (n_components = 2) .fit (iris.data) gt; gt; gt; pca_2d = pca.transform (iris.data) gt; gt; gt; para i en el rango (0, pca_2d.shape [0]): gt; gt; gt; si dbscan.labels_ [i] == 0: gt; gt; gt; c1 = pl.scatter (pca_2d [i, 0], pca_2d [i, 1], c = `r`, marcador = `+`) gt; gt; gt; elif dbscan.labels_ [i] == 1: gt; gt; gt; c2 = pl.scatter (pca_2d [i, 0], pca_2d [i, 1], c = `g`, marcador = `o`) gt; gt; gt; elif dbscan.labels_ [i] == -1: gt; gt; gt; c3 = pl.scatter (pca_2d [i, 0], pca_2d [i, 1], c = `b`, marcador = `*`) gt; gt; gt; pl.legend ([c1, c2, c3], [ `Cluster 1`, `Cluster 2`, `ruido`]) gt; gt; gt; pl.title ( `DBSCAN encuentra 2 clusters y ruido) gt; gt; gt; pl.show ()

Aquí está el gráfico de dispersión que es la salida de este código:

Video: 3.- Redes Neuronales: Fácil y desde cero

Se puede ver que DBSCAN produjo tres grupos. Nótese, sin embargo, que la cifra se asemeja mucho a una solución de dos clúster: Se muestra sólo 17 casos de etiqueta - 1. Eso es porque es un dos-cluster Solución del tercer grupo (-1) es ruido (valores atípicos). Puede aumentar el parámetro de distancia (eps) de la configuración por defecto de 0,5 a 0,9, y se convertirá en una solución de dos clúster sin ruido.

El parámetro de distancia es la distancia máxima una observación es al clúster más cercano. Cuanto mayor es el valor para el parámetro de distancia, el menor número de racimos se encuentran debido a racimos con el tiempo se funden en otros grupos. Las etiquetas -1 se dispersan alrededor de Cluster 1 y Grupo 2 en unos pocos lugares:

  • Cerca de los bordes de Cluster 2 (clases Versicolor y virginica)

  • Cerca del centro de Cluster 2 (clases Versicolor y virginica)

    El gráfico sólo muestra una representación bidimensional de los datos. La distancia también se puede medir en dimensiones más altas.

  • Un ejemplo de arriba Cluster 1 (la clase Setosa)

¿Cómo evaluar el modelo

En este ejemplo, DBSCAN no produjo el resultado ideal con los parámetros por defecto para el conjunto de datos del iris. Su rendimiento fue bastante consistente con otros algoritmos de agrupamiento que terminan con una solución de dos clúster.

El conjunto de datos del iris no se aprovecha de las características más potentes de DBSCAN - detección de ruido y la capacidad de descubrir grupos de formas arbitrarias. Sin embargo, DBSCAN es un algoritmo de agrupamiento muy popular y la investigación todavía se está trabajando en la mejora de su rendimiento.

Artículos Relacionados