Ciągłe grupowanie

9

Mam więc problem z klastrowaniem danych na żywo i ciągłego przesyłania strumieniowego. Ponieważ mam stale rosnący zestaw danych, nie jestem pewien, jaki jest najlepszy sposób na wydajne i wydajne tworzenie klastrów. Wymyśliłem kilka możliwych rozwiązań, w tym:

  1. Ustawienie limitu liczby punktów danych, które mają być dozwolone, a więc za każdym razem, gdy limit zostanie osiągnięty, gdy inny punkt danych pojawi się w najstarszym punkcie, zostanie usunięty. Zasadniczo sugerowałoby to, że starsze dane nie są już dla nas wystarczająco istotne, aby przejmować się tym, co tracimy, wyrzucając je.

  2. Gdy będzie wystarczająca ilość danych, aby stworzyć dobre klastrowanie, rozważ tę „konfigurację”, a gdy pojawią się nowe punkty, zamiast ponownie grupować wszystkie dane, po prostu dowiedz się, które centrum klastrów jest najbliżej, i dodaj je do tego. Korzyścią jest to, że możesz uniknąć konieczności ponownego klastrowania w każdym nowym punkcie i nie musisz przechowywać wszystkich innych punktów, tylko centra klastrów, biorąc pod uwagę to, że grupowanie jest „wystarczająco dobre”. Minusem jest to, że ponowne uruchomienie algorytmu ze wszystkimi punktami danych od początku może być dokładniejsze.

Chociaż są to niektóre potencjalne rozwiązania, które zaatakowałem, chciałbym wiedzieć, czy istnieją jakieś bardziej znane techniki rozwiązania tego problemu. Sądzę, że strony takie jak Google musiały sobie z tym jakoś poradzić (i mam nadzieję, że „dodaj więcej pamięci RAM, serwerów i procesorów” lub „stale powiększaj swoje centra danych” nie są jedynymi dostępnymi odpowiedziami).

Suresh Venkat
źródło

Odpowiedzi:

9

Jest dużo pracy nad klastrowaniem strumieniowym (co nieco różni się od metod online, ale jest zasadniczo tym, czego chcesz). Powyższe odniesienie autorstwa Guha i in. Jest bardzo dobre, a dla bardziej ogólnego spojrzenia na to, jakie rodzaje technik działają i jakie metody były stosowane w przeszłości (zarówno heurystyczne, jak i precyzyjne), możesz spojrzeć na moją ankietę w sprawie grupowania w strumieniach .

Suresh Venkat
źródło
4

Podoba mi się powyższa ankieta Suresha i podsumowuje różne podejścia do grupowania strumieni. Nie prosiłeś o to, ale jest to możliwe w niektórych przypadkach, problem polega na tym, że ciągłe dane są widziane przez serwery rozproszone, trzeba utrzymywać klastrowanie w centrum i nie trzeba przenosić dużej ilości danych. Zobacz tutaj .

Ja też
źródło
witaj, Muthu!
Suresh Venkat