Así que tengo un problema al que me enfrento con respecto a la agrupación con datos en vivo y de transmisión continua. Como tengo un conjunto de datos cada vez mayor, no estoy seguro de cuál es la mejor manera de ejecutar clustering eficiente y efectivo. He encontrado algunas posibles soluciones, que incluyen:
Establecer un límite en la cantidad de puntos de datos para permitir, por lo tanto, cada vez que se alcanza el límite a medida que llega otro punto de datos, se elimina el punto más antiguo. Esencialmente, esto sugeriría que los datos más antiguos ya no son lo suficientemente relevantes para que nos importe lo que estamos perdiendo al descartarlos.
Una vez que haya suficientes datos para hacer un buen agrupamiento, considere esto "la configuración" y, a medida que surjan nuevos puntos, en lugar de volver a agrupar todos los datos, descubra qué centro de clúster está más cerca del nuevo punto y agréguelo a eso. El beneficio aquí es que podría evitar tener que volver a agruparse en cada punto nuevo y no tendría que almacenar todos los demás puntos, solo los centros de clúster, considerando que esta agrupación es "lo suficientemente buena". La desventaja es que volver a ejecutar el algoritmo con todos los puntos de datos desde el principio puede ser más preciso.
Si bien esas son algunas de las posibles soluciones que tuve en mi cerebro, me gustaría saber si existen técnicas más conocidas para enfrentar este problema. Me imagino que sitios como Google tuvieron que lidiar con esto de alguna manera (y espero que "agregar más ram, servidores y procesadores" o "expandir continuamente sus centros de datos" no sean las únicas respuestas disponibles).
fuente