K-oznacza: ile iteracji w sytuacjach praktycznych?


10

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 sizeNiekoniecznie.
ttnphns

Istnieją różne kryteria zatrzymania iteracji w K-średnich. Co ciekawe, jednym z rozsądnych sposobów jest po prostu ustawienie liczby iteracji na stałą wartość (powiedzmy 10 lub 20). Środki K są przeznaczone do szybkich metod, dlatego jeśli chcesz, aby kryterium konwergencji było sprawdzane po każdej iteracji, kryterium to musi być łatwe / szybkie do obliczenia.
ttnphns

1
Czy istnieje jakiś „naukowy” sposób ustalenia maksymalnej liczby iteracji, które należy wykonać?
foo

Twój ostatni komentarz to dobre pytanie. Szczerze mówiąc nie wiem. może inni ludzie odpowiedzą na to pytanie.
ttnphns

Odpowiedzi:


6
  1. K-znaczy jest tani. Możesz sobie pozwolić na uruchomienie go przez wiele iteracji.

  2. 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.

  3. Są naprawdę powolne wdrożenia. Nie używaj ich.

  4. Ś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?


1
Zgodzić się. W tym artykule ( Skalowalne K-średnie przez wyszukiwanie rankingowe ) autorzy stwierdzili, że K-średnie zbiega się po 20-50 iteracjach we wszystkich praktycznych sytuacjach, nawet w testowanych zestawach danych o dużych wymiarach. Czy oprócz K-średnich znasz jakiś algorytm, który wymaga ogromnej liczby iteracji aż do konwergencji?
foo

Może trenujesz SVM? Wierzę, że jest iteracyjny, próbuje znaleźć najlepszy (i najmniejszy, ponieważ przewidywanie zależy od tego!) Zestaw wektorów pomocniczych.
Ma ZAKOŃCZENIE - Anony-Mousse

Oczywistym rozwiązaniem dla uruchomienia k-średnich na zestawach danych o dużych wymiarach jest uruchomienie PCA lub innej metody redukcji wymiarów, a następnie uruchomienie k-średnich
nico
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.