Nie mam doświadczenia w branży eksploracji danych ani dużych zbiorów danych, więc chciałbym usłyszeć, jak dzielisz się doświadczeniami.
Czy ludzie faktycznie używają k-średnich, PAM, CLARA itp. Na naprawdę dużym zbiorze danych? Czy po prostu losowo wybierają z niego próbkę? Jeśli po prostu pobiorą próbkę zestawu danych, czy wynik byłby wiarygodny, gdyby zestaw danych nie był normalnie dystrybuowany?
Czy w praktycznych sytuacjach podczas uruchamiania tych algorytmów możemy powiedzieć, ile iteracji normalnie zajmie, dopóki nie nastąpi konwergencja? Czy liczba iteracji zawsze rośnie wraz z rozmiarem danych?
Pytam o to, ponieważ myślę o opracowaniu podejścia do zakończenia algorytmów iteracyjnych przed konwergencją, a mimo to wyniki są nadal do przyjęcia. Myślę, że warto spróbować, jeśli liczba iteracji wynosi, powiedzmy, ponad 1000, abyśmy mogli zaoszczędzić trochę czasu i kosztów obliczeń. Co myślisz?
number of iterations always grow with the data size
Niekoniecznie.Odpowiedzi:
K-znaczy jest tani. Możesz sobie pozwolić na uruchomienie go przez wiele iteracji.
Istnieją złe algorytmy (standardowy) i dobre algorytmy. W przypadku dobrych algorytmów późniejsze iteracje często kosztują znacznie mniej niż 1% pierwszej iteracji.
Są naprawdę powolne wdrożenia. Nie używaj ich.
Środki „K” na „dużych” danych nie istnieją. Ponieważ działa tylko na niskowymiarowych danych wektorowych. Z takimi danymi nie przekroczysz pamięci nowoczesnego serwera. tak, istnieją większe dane - ale nie można użyć k-średnich, powiedzmy miesiąc danych na Twitterze, ponieważ nie przyniesie to nic użytecznego.
Przy dobrej implementacji, na nowoczesnym serwerze, największy zbiór danych, w którym można znaleźć, gdzie k-średnich nadal daje użyteczny wynik, prawdopodobnie potrzebuje mniej niż 1 minutę do obliczenia aż do konwergencji. Po co więc zastanawiać się nad limitem iteracji?
źródło