J'ai donc un problème auquel je suis confronté en ce qui concerne le clustering avec des données en direct et en continu. Étant donné que j'ai un ensemble de données en constante augmentation, je ne sais pas quelle est la meilleure façon d'exécuter un clustering efficace et efficace. J'ai trouvé quelques solutions possibles, notamment:
Définir une limite sur le nombre de points de données à autoriser, donc chaque fois que la limite est atteinte lorsqu'un autre point de données arrive dans le point le plus ancien, il est supprimé. Essentiellement, cela suggérerait que les données plus anciennes ne sont plus suffisamment pertinentes pour nous pour nous soucier de ce que nous perdons en les jetant.
Une fois qu'il y a suffisamment de données pour faire un bon regroupement, considérez cette "configuration" et à mesure que de nouveaux points arrivent, plutôt que de regrouper toutes les données, déterminez simplement à quel centre de cluster le nouveau point est le plus proche et ajoutez-le à cela. L'avantage ici est que vous pourriez éviter d'avoir à recluster sur chaque nouveau point et vous n'auriez pas à stocker tous les autres points, juste les centres de cluster, considérant ce cluster "assez bien". L'inconvénient est que la réexécution de l'algorithme avec tous les points de données depuis le début peut être plus précise.
Bien que ce soient des solutions potentielles que j'ai réfléchies, j'aimerais savoir s'il existe des techniques mieux connues pour faire face à ce problème. Je suppose que des sites comme Google ont dû y faire face (et j'espère que "ajouter plus de RAM, de serveurs et de processeurs" ou "étendre continuellement vos centres de données" ne sont pas les seules réponses disponibles).
la source