6 votos

¿Cómo resumir y comprender los resultados de la agrupación DBSCAN en big data?

Muchos algoritmos de clustering pueden ser utilizados con big data, por ejemplo, versiones de KMeans, DBSCAN basado en Hadoop, etc. Pero, con k significa que obtendremos k centroides para k clusters y podemos mapearlos en el espacio y de alguna manera entender los resultados. ¿Pero qué pasa con los algoritmos basados en la densidad como DBSCAN? En DBSCAN obtendremos m clusters que contienen millones y miles de millones de puntos de datos en caso de big-data.

¿Cómo tratamos de entender los resultados de estas agrupaciones?

Agrupar más datos es costoso y también carece de sentido si no entendemos cada grupo.

3voto

Amadiere Puntos 5606

¿Está seguro de que agrupación de big data ¿se utiliza realmente en alguna parte?

Por lo que puedo decir, es no utilizado. Todo el mundo utiliza la clasificación, nadie utiliza la agrupación. Porque el problema de la agrupación es mucho más difícil, y requerirá análisis manual de los resultados.

K-means: el algoritmo habitual de Lloyd es ingenuamente paralelo y, por lo tanto, trivial de implementar en Hadoop. Pero al mismo tiempo, no tiene sentido utilizar k-means en big data . La razón es sencilla: no hay big data de vectores densos . K-means funciona bien para digamos hasta 10 dimensiones. Con doble precisión, necesito entonces 80 bytes por registro. En un ordenador modesto con 1 GB de RAM ya caben unos 13 millones de vectores en la memoria principal. Tengo máquinas con 128 GB de RAM...

Así que te será difícil encontrar un conjunto de datos reales donde:

  • Me quedo sin memoria en un solo ordenador.
  • k-means produce resultados notables. (En datos de gran dimensión, k-means suele ser tan eficaz como las particiones aleatorias de Voronoi).
  • el resultado mejora sobre una muestra.

El último punto es importante: k-means calcula significa . La calidad de un media no mejora infinitamente cuando se añaden más datos. Sólo se obtiene marginal cambios (si el resultado es estable, es decir, k-means funcionó). Lo más probable es que tu cálculo distribuido ya haya perdido más precisión en el camino de la que ganas al final...

En cuanto a DBSCAN: no conozco ningún popular implementación distribuida. De vez en cuando se propone un nuevo DBSCAN paralelo, normalmente utilizando rejillas, pero nunca he visto que se utilice en la práctica o que esté disponible públicamente. De nuevo, hay problemas con la disponibilidad de datos interesantes en los que haría sentido para utilizar DBSCAN.

  • En el caso de los big data, ¿cómo se establece el minPts y epsilon ¿parámetros? Si te equivocas, no tendrás ningún cluster; o todo será un único gran custer.
  • Si sus datos son de baja dimensión, véase más arriba para k-means. Utilizando técnicas como R*-trees y rejillas un solo ordenador ya puede agrupar datos de baja dimensión con miles de millones de puntos mediante DBSCAN.
  • Si tiene datos complejos, en los que la indexación ya no funciona, DBSCAN escalará cuadráticamente y, por lo tanto, será una opción inadecuada para los big data.

A muchas plataformas/empresas les gusta pretender que pueden ejecutar razonablemente k-means en su cluster. Pero el hecho es que no tiene sentido de esta manera, y es sólo maketing y demostración técnica. Por eso suelen utilizar datos aleatorios para presumir, o el temido conjunto de datos rotos KDDCup1999 (¡que todavía puedo clusterizar más rápido en un solo ordenador que en cualquier cluster Hadoop!)

Así que lo que realmente se hace en la práctica

  • El clúster Hadoop es su almacén de datos (rebautizado como nuevo big data).
  • Se ejecuta un preprocesamiento distribuido en los datos brutos, para darles forma.
  • Los datos preprocesados son lo suficientemente pequeños como para ser agrupados en un solo ordenador, con algoritmos más avanzados (que pueden incluso escalar cuadráticamente, y no tienen que ser ingenuamente paralelos)
  • Lo vendes a tu departamento de marketing
  • Su departamento de marketing lo vende al CSomethingO.
  • Todo el mundo está contento, porque ahora son expertos en big data.

2voto

iliasfl Puntos 1440

No es cierto que tengamos que comprender los clusters en cada aplicación. En realidad, si tiene pocos clústeres bien establecidos, probablemente acabará haciendo algo de aprendizaje supervisado en lugar de clústeres: haga el clúster de su elección, compruebe los resultados, asigne etiquetas a los miembros del clúster, entrene utilizando un método supervisado basado en las etiquetas asignadas.

Puedo poner un ejemplo sencillo en el que el número de clusters puede ser enorme y seguir siendo útil: La agrupación de noticias o tweets similares. Por ejemplo, en un sitio web queremos proporcionar enlaces desde una noticia a otras historias similares. Esto requiere encontrar noticias similares, es decir, el clúster al que pertenece cada noticia, sin necesidad de asignar "etiquetas" a cada clúster.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X