Algorytm centroidów
Z Wikipedii
Algorytm centroidów (k-średnich, ang. k-means) jest jednym z algorytmów stosowanym w analizie skupień, wykorzystywanym m.in. w kwantyzacji wektorowej. Algorytm nazywany jest także algorytmem klastrowym lub - od nazwisk twórców Linde, Buzo i Graya - algorytmem LBG.
Spis treści |
[edytuj] Cel algorytmu centroidów
| Ten artykuł wymaga dopracowania zgodnie z zaleceniami edycyjnymi. Należy w nim poprawić: algorytm centroidów jest stosowany do analizy skupień. Kwantyzacja wektorowa to tylko jedno z zastosowań. Po wyeliminowaniu wskazanych powyżej niedoskonałości prosimy usunąć szablon {{Dopracować}} z kodu tego artykułu. |
Celem algorytmu jest przypisanie do wektorów kodowych ri (
) M n-wymiarowych wektorów danych, przy jak najmniejszym średnim błędzie kwantyzacji.
Średni błąd kwantyzacji dany jest wzorem:
gdzie K jest liczbą elementów xi przypisanych do wektora kodowego r, natomiast d miarą błędu kwantyzacji i najczęściej jest to błąd kwadratowy określany dla wektorów n-wymiarowych jako
.
[edytuj] Przebieg algorytmu centroidów
Algorytm centroidów przebiega następująco:
- Wybierz N wektorów kodowych i określ maksymalny błąd kwantyzacji e.
- m: = 0 (iteracja)
(średni błąd kwantyzacji w m-tej iteracji)- Dopóki nie uzyskano zadowalającego rezultatu, powtarzaj:
- Podziel M wektorów danych na N grup. Wektor xj (
) jest przypisywany do i-tej grupy wtedy i tylko wtedy gdy zachodzi nierówność
dla wszystkich rk różnych od ri. - Wyznacz średni błąd kwantyzacji:
, przy czym do obliczeń brany jest wektor kodowy r z tej grupy, do której został zakwalifikowany wektor danych xi - Wyznacz centroidy dla wszystkich i grup wektorów i przypisz je do wektorów kodowych ri.
- Jeśli
zakończ (uzyskano wymaganą dokładność), w przeciwnym razie zwiększ m i spróbuj jeszcze raz.
- Podziel M wektorów danych na N grup. Wektor xj (
Algorytm sukcesywnie dopasowuje wektory kodowe do istniejących danych i w miarę potrzeb przesuwa błędnie zakwalifikowane wektory danych do innych grup. Problem stanowi jednak początkowy wybór wektorów kodowych (punkt 1 algorytmu).
[edytuj] Bibliografia
- J. B. MacQueen (1967): "Some Methods for classification and Analysis of Multivariate Observations", Proceedings of 5-th Berkeley Symposium on Mathematical Statistics and Probability, Berkeley, University of California Press, 1:281-297
- J. A. Hartigan (1975) "Clustering Algorithms". Wiley.
- J. A. Hartigan and M. A. Wong (1979) "A K-Means Clustering Algorithm", Applied Statistics, Vol. 28, No. 1, p100-108.
