Quindi ho un problema che sto affrontando per quanto riguarda il clustering con dati live in streaming continuo. Dato che ho un set di dati in continua crescita, non sono sicuro di quale sia il modo migliore per eseguire un clustering efficiente ed efficace. Ho escogitato alcune possibili soluzioni tra cui:
L'impostazione di un limite al numero di punti dati da consentire, quindi ogni volta che viene raggiunto il limite quando arriva un altro punto dati viene rimosso il punto più vecchio. In sostanza, ciò suggerirebbe che i dati più vecchi non sono più abbastanza rilevanti per noi per preoccuparci di ciò che stiamo perdendo eliminandoli.
Una volta che ci sono abbastanza dati per creare un buon clustering, considera questo "setup" e come arrivano nuovi punti, piuttosto che ricodificare tutti i dati solo per capire a quale centro del cluster è più vicino il nuovo punto e aggiungerlo a quello. Il vantaggio qui è che potresti evitare di dover ricodificare su ogni nuovo punto e non dovresti memorizzare tutti gli altri punti, solo i centri del cluster, considerando questo cluster "abbastanza buono". Il rovescio della medaglia è che rieseguire l'algoritmo con tutti i punti dati dall'inizio potrebbe essere più preciso.
Mentre quelle sono alcune potenziali soluzioni che ho preso d'assalto, mi piacerebbe sapere se ci sono tecniche più conosciute per affrontare questo problema. Immagino che siti come Google abbiano dovuto affrontarlo in qualche modo (e spero che "aggiungere più ram, server e processori" o "espandere continuamente i tuoi data center" non siano le uniche risposte disponibili).