No tengo experiencia en la industria de minería de datos o big data, por lo que me encantaría escucharlo compartir alguna experiencia.
¿Las personas realmente ejecutan k-means, PAM, CLARA, etc. en un conjunto de datos realmente grande? ¿O simplemente seleccionan una muestra al azar? Si solo toman una muestra del conjunto de datos, ¿el resultado sería confiable si el conjunto de datos no se distribuye normalmente?
En situaciones prácticas cuando se ejecutan estos algoritmos, ¿podemos decir cuántas iteraciones se necesitarían normalmente hasta que se produzca la convergencia? ¿O el número de iteraciones siempre crece con el tamaño de los datos?
Pregunto esto porque estoy pensando en desarrollar un enfoque para terminar los algoritmos iterativos antes de la convergencia, y sin embargo, los resultados aún son aceptables. Creo que vale la pena probar si el número de iteraciones es, digamos más de 1,000, para que podamos ahorrar algo de costo y tiempo computacional. ¿Qué piensas?
number of iterations always grow with the data size
No necesariamente.Respuestas:
K-means es barato. Puede permitirse ejecutarlo durante muchas iteraciones.
Hay malos algoritmos (el estándar) y buenos algoritmos. Para buenos algoritmos, las iteraciones posteriores a menudo cuestan mucho menos del 1% de la primera iteración.
Hay implementaciones realmente lentas. No los uses.
K-means en datos "grandes" no existe. Porque solo funciona en datos vectoriales de baja dimensión. No excederá la memoria de un servidor moderno con tales datos. sí, existen datos más grandes, pero no puede usar k-means en digamos un mes de datos de Twitter, porque no le dará nada útil.
Con una buena implementación, en un servidor moderno, el conjunto de datos más grande que puede encontrar donde k-means todavía da un resultado útil probablemente necesite menos de 1 minuto para calcular hasta la convergencia. Entonces, ¿por qué molestarse en pensar en un límite de iteración?
fuente