Ich habe also ein Problem mit dem Clustering mit Live-Daten, die kontinuierlich gestreamt werden. Da ich einen ständig wachsenden Datensatz habe, bin ich mir nicht sicher, wie ich effizientes und effektives Clustering am besten ausführen kann. Ich habe einige mögliche Lösungen gefunden, darunter:
Das Festlegen eines Grenzwerts für die Anzahl der zulässigen Datenpunkte wird entfernt, wenn der Grenzwert erreicht wird, wenn ein anderer Datenpunkt am ältesten Punkt eingeht. Im Wesentlichen würde dies darauf hindeuten, dass ältere Daten für uns nicht mehr relevant genug sind, um uns darum zu kümmern, was wir verlieren, wenn wir sie wegwerfen.
Wenn genügend Daten vorhanden sind, um ein gutes Clustering zu erstellen, betrachten Sie dies als "Setup". Wenn neue Punkte hinzukommen, müssen Sie nicht alle Daten neu gruppieren, sondern nur herausfinden, welchem Clusterzentrum der neue Punkt am nächsten liegt, und ihn hinzufügen. Der Vorteil hierbei ist, dass Sie vermeiden können, bei jedem neuen Punkt ein neues Cluster zu erstellen, und dass Sie nicht alle anderen Punkte, nur die Cluster-Zentren, speichern müssen, wenn Sie dieses Clustering als "gut genug" betrachten. Der Nachteil ist, dass das erneute Ausführen des Algorithmus mit allen Datenpunkten von Anfang an genauer sein kann.
Während dies einige mögliche Lösungen sind, die ich mir überlegt habe, würde ich gerne wissen, ob es bekanntere Techniken gibt, um dieses Problem anzugehen. Ich denke, Websites wie Google mussten sich irgendwie damit auseinandersetzen (und ich hoffe, dass "mehr RAM, Server und Prozessoren hinzufügen" oder "Ihre Rechenzentren kontinuierlich erweitern" nicht die einzigen verfügbaren Antworten sind).