Soy nuevo en ciencia de datos y tengo problemas para encontrar clústeres en un conjunto de datos con 200,000 filas y 50 columnas en R.
Dado que los datos tienen variables tanto numéricas como nominales, los métodos como K-means que usa la medida de distancia euclidiana no parecen ser una opción adecuada. Así que recurro a PAM, agnes y hclust, que acepta una matriz de distancia como entrada.
El método Margarita puede funcionar en datos de tipo mixto, pero la matriz de distancia es demasiado grande: 200,000 veces 200,000 es mucho mayor que 2 ^ 31-1 (el límite de longitud del vector antes de R 3.0.0).
El nuevo R 3.0.0 lanzado ayer admite vectores largos con una longitud mayor a 2 ^ 31-1. Pero una matriz doble de 200,000 por 200,000 requiere una RAM continua mayor a 16Gb, lo cual no es posible en mi máquina.
Leí acerca de la computación paralela y el paquete bigmemory y no estoy seguro de si van a ayudar: si estoy usando Daisy, generará una gran matriz que de todos modos no puede caber en la memoria.
También leí sobre la publicación sobre muestreo: ¿es relevante el muestreo en el momento de los 'grandes datos'?
Entonces, en mi caso, ¿es relevante usar el muestreo en el conjunto de datos, agrupar en la muestra y luego inferir la estructura de todo el conjunto de datos?
¿Me puede dar alguna sugerencia? ¡Gracias!
Acerca de mi máquina:
R versión 3.0.0 (03/04/2013)
Plataforma: x86_64-w64-mingw32 / x64 (64 bits)
SO: Windows 7 de 64 bits
RAM: 16.0GB
fuente
Respuestas:
El PAM en sí no debería requerir una matriz de distancia completa, pero se sabe que el algoritmo se escala mal, ya que luego necesita (re) calcular todas las distancias por pares dentro de cada grupo en cada iteración para encontrar los elementos más centrales. Esto es mucho menor si tiene una gran cantidad de clústeres, ¡pero sin embargo es bastante costoso!
Sin embargo, para la mayoría de estos algoritmos, primero debe asegurarse de que su función de distancia sea realmente buena; entonces debe considerar formas de acelerar las consultas mediante el uso de índices apropiados.
También tenga en cuenta que en muchos casos, y esto puede ser válido para PAM, puede ejecutar el algoritmo en una muestra primero , luego solo refinarlo en el conjunto de datos completo. Si su muestra es representativa, los algoritmos como k-means y PAM deberían darle esencialmente el mismo resultado que en el conjunto de datos completo.
fuente
pruebe la función CLARA del paquete de clúster en R. Implementa un algoritmo tipo pam submuestreando sus datos (asegúrese de proporcionar tamaños de submuestra que tengan sentido para sus datos porque los valores predeterminados son deliberadamente demasiado pequeños). Funciona especialmente bien si los medios de sus datos pueden representarse con una pequeña muestra del total de datos (es decir, hay relativamente menos grupos en el conjunto de datos). De esta manera, puede agrupar de manera eficiente con una pequeña muestra aleatoria y agregar puntos a la solución de agrupación precalculada.
http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Clustering/CLARA
fuente
También puede aplicar análisis de correspondencia múltiple en sus variables cualitativas y hacer transformaciones en una variable numérica.
fuente