Algorytm k-średnich Źródło: LaroseD.T., Okrywanie wiedzy w danych.wprowadzenie do eksploracji danych, PWN, Warszawa 005.
Dane a b c d e f g h (,3) (3,3) (4,3) (5,3) (,) (4,) (,) (,)
Algorytm k-średnich KROK. Zapytaj decydenta na ile klas podzielić zbiór danych.
Dane a b c d e f g h (,3) (3,3) (4,3) (5,3) (,) (4,) (,) (,) k
KROK. Wybierz losowo k-rekordów jako początkowe centra klas.
a b c d e f g h (,3) (3,3) (4,3) (5,3) (,) (4,) (,) (,) k Centra klas
KROK 3 (przebieg ). Dla każdego rekordu, znajdź najbliższe centrum: n n n m i n k k x i, xi,..., xri, n i k n i k i Mówimy, że każde centrum skupia pewien podzbiór danych, tym samym tworząc podział całego zbioru danych. Otrzymujemy w ten sposób kklasc,c,,c k. k k
a b c d e f g h (,3) (3,3) (4,3) (5,3) (,) (4,) (,) (,) Punkt Odległość od m(, ) Odległość od m(, ) a,00,4 C b,83,4 C c 3,6,83 C d 4,47 3,6 C e,00,4 C f 3,6,4 C g 0,00,00 C h,00 0,00 C klasy C{a(,3), e(,), g(,)} Najbliższe centrum centrum m(, ) m(, ) C{b(3,3), c(4,3), d(5,3), f(4,), h(,)
3,5 3,5,5 0,5 0 0 3 4 5 6 Klasy C{a(,3), e(,), g(,)} C{b(3,3), c(4,3), d(5,3), f(4,), h(,)}
Kryterium homogeniczności BCV WCV max gdzie: BSV d ( m m ) WCV SSE, wariancja między klasami k i p C i d ( p, m ) i wariancja wewnątrz klas
Punkt Kryterium homogeniczności Odległość od m(,) Odległość od m(,) Najbliższe centrum a,00,4 C b,83,4 C c 3,6,83 C d 4,47 3,6 C e,00,4 C f 3,6,4 C g 0,00,00 C h,00 0,00 C BSV d ( m, m ) WCV SSE k i p C i d ( p, m ) i +.4 +.83 + 3.6 + +.4 + 0 + 0 36 BCV WCV 36 0.078
KROK 4 (pierwszy przebieg). Dla każdej klasy znajdź nowe centrum.
3,5 3,5,5 0,5 0 0 3 4 5 6 Klasy Centra C{a(,3), e(,), g(,)} m((++)/3, (3++)/3)(, ) C{b(3,3), c(4,3), d(5,3), f(4,), h(,)} m((3+4+5+4+)/5, (3+3+3++)/5))(3.6,.4)
KROK 5. Powtarzaj kroki 3-5 aż do spełnienia kryterium stopu.
KROK 3 (drugi przebieg). Dla każdego rekordu, znajdź najbliższe centrum: n n n m i n k k x i, xi,..., xri, n i k n i k i Każde centrum skupia pewien podzbiór danych (najbliższych rekordów), tym samym tworząc podział całego zbioru danych. Otrzymujemy w ten sposób kklasc,c,,c k. k k
a b c d e f g h (,3) (3,3) (4,3) (5,3) (,) (4,) (,) (,) Punkt Odległość od m(, ) Odległość od m(3.6,.4) a.00.67 C b.4 0.85 C c 3.6 0.7 C d 4..5 C e 0.00.63 C f 3.00 0.57 C g.00.95 C h.4.3 C Najbliższe centrum Nowe centra m(, ) m(3.6,.4) Nowe klasy C{a(,3), e(,), g(,), h(,)} C{b(3,3), c(4,3), d(5,3), f(4,)}
3,5 3,5,5 0,5 0 0 3 4 5 6 Klasy C{a(,3), e(,), g(,), h(,)} C{b(3,3), c(4,3), d(5,3), f(4,)}
Kryterium Punkt Odległość od m(, ) Odległość od m(3.6,.4) Najbliższe centrum a.00.67 C b.4 0.85 C c 3.6 0.7 C d 4..5 C e 0.00.63 C f 3.00 0.57 C g.00.95 C BCV WCV + BCV WCV 0.85 h.4.3 C d ( m, m ) SSE +.63 7.88 0.7 k.63 i p C +.5 0.3338 > i + d 0 ( p, m ) + i 0.57 + +.4 0.078( pierwszyprzebieg) 7.88
KROK 4 (drugi przebieg). Dla każdej klasy znajdź nowe centrum.
3,5 3,5,5 0,5 0 0 3 4 5 6 Klasy C{a(,3), e(,), g(,), h(,)} m((+++)/4, (3+++)/4)(.5,.75) C{b(3,3), c(4,3), d(5,3), f(4,)} m((3+4+5+4)/4, (3+3+3)/4)(4.00,.75)
KROK 5. Powtarzaj kroki 3-5 aż do spełnienia kryterium stopu.
KROK 3 (trzeci przebieg). Dla każdego rekordu, znajdź najbliższe centrum: n n n m i n k k x i, xi,..., xri, n i k n i k i Każde centrum skupia pewien podzbiór danych (najbliższych rekordów), tym samym tworząc podział całego zbioru danych. Otrzymujemy w ten sposób kklasc,c,,c k. k k
a b c d e f g h (,3) (3,3) (4,3) (5,3) (,) (4,) (,) (,) Punkt Odległość od m(.5,.75) Odległość od m(4,.75) a.7 3.0 C b.5.03 C c 3.0 0.5 C d 3.95.03 C e 0.35 3.09 C f.76 0.75 C g 0.79 3.47 C h.06.66 C Nowe klasy C{a(,3), e(,), g(,), h(,)} C{b(3,3), c(4,3), d(5,3), f(4,)} Najbliższe centrum Nowe centra m(.5,.75) m(4.00,.75)
3,5 3,5,5 0,5 0 0 3 4 5 6 Classes C{a(,3), e(,), g(,), h(,)} C{b(3,3), c(4,3), d(5,3), f(4,)}
Kryterium Punkt Odległość od m(.5,.75) Odległosć od m(4.00,.75) a.7 3.0 C Najbliższe centrum b.5.03 C c 3.0 0.5 C d 3.95.03 C e 0.35 3.09 C f.76 0.75 C g 0.79 3.47 C h.06.66 C BCV d ( m, m ).93 WCV SSE k i p C i d ( p, m ) i.7 +.03 + 0.5 +.03 + 0.35 + 0.75 + 0.79 +.06 6.5 BCV WCV.93 6.5 0.4688 > 0.3338(drugiprzebieg)
KROK 4 (trzeci przebieg). Dla każdej klasy znajdź nowe centrum.
3,5 3,5,5 0,5 0 0 3 4 5 6 Klasy Te same centra- STOP C{a(,3), e(,), g(,), h(,)} m((+++)/4, (3+++)/4)(.5,.75) C{b(3,3), c(4,3), d(5,3), f(4,)} m((3+4+5+4)/4, (3+3+3)/4)(4.00,.75)
KROK 5. Powtarzaj kroki 3 i 5 aż do spełnienia kryterium stopu. Ponieważ centra nie zmieniły się -> STOP
Kryteria stopu dla ustalonego k ) Takie same centra w kolejnym kroku. )Mała zmiana funkcji kryterium BCV WCV BCV WCV ( l + ) ( l) < ε
Kryterium wyboru k min SSE k i p C i d ( p, m ) i
Przykład Imię Wzrost Rozmiar buta Płeć Płeć (0,) Zenek 80 44 M Joanna 73 4 F 0 3 Paulina 7 39 F 0 4 Martina 8 4 F 0 5 Ola 64 36 F 0 6 Marcel 7 4 M 7 Ewa 57 35 F 0 8 Ola 8 4 F 0 9 Paulina 68 37 F 0 0 Ewelina 64 37 F 0 Magda 76 40 F 0 Michał 75 4 M 3 Magda 74 38 F 0
Struktura klas (k) Struktura klas Obserwacja Imię Klasa Odległość Zenek 4,979 Joanna 3,0 3 Paulina 4,535 4 Martina 5,089 5 Ola 0,79 6 Marcel 4,5 7 Ewa 6,374 8 Ola 5,089 9 Paulina 4,809 0 Ewelina,06 Magda,60 Michał,495 3 Magda 3,74
Finalne centra Klasa Wzrost 76 63 Rozmiar buta 4 36 Płeć 0 0
ANOVA H 0 : µ µ... µ k H : Co najmniej jedna średnia jest różna Wszystkie średnie są równe F MSTr MSE wariancja wariancja miedzyklasowa bledu losowego F- Snedecor(k-,n-k) H 0 H
SSE k n ( i x ) ij xi i j MSE SSE n k SSTr k i n i ( x x ) i MSTr SSTr k
ANOVA ANOVA Cluster Error F Sig. Mean Square(MSTr) df Mean Square(MSE) df Wzrost 450,73 5,886 8,337 0,000 in Rozmiar buta 65,438,694 4,86 0,000 Płeć 0,308 0,8,69 0,0 zmienna nieistotna The F tests should be used only for descriptive purposes because the clusters have been chosen to maximize the differences amongcases in different clusters. The observed significance levels are not corrected for this and thus cannot be interpreted as tests of the hypothesis that the cluster means are equal.
Struktura klas (k) Przynależność klasowa Rozmiar klasy Imię Klasa Odległość Zenek 4,934 Joanna 3,00 3 Paulina 4,53 4 Martina 5,078 5 Ola 0,79 6 Marcel 4,098 7 Ewa 6,374 8 Ola 5,078 9 Paulina 4,809 0 Ewelina,06 Magda, Michał,338 3 Magda 3,699
Finalne klasy Klasa Wzrost 76 63 Rozmiar buta 4 36
ANOVA Cluster Error F Sig. Mean Square df Mean Square df Wzrost 450,73 5,886 8,337,000 Rozmiar buta 65,438,694 4,86,000 The F tests should be used only for descriptive purposes because the clusters have been chosen to maximize the differences among cases in different clusters. The observed significance levels are not corrected for this and thus cannot be interpreted as tests of the hypothesis that the cluster means are equal. wszystkie zmienne istotne
Factor Analysis Name High Shoe Number Sex0 Zenek 80 44 Joanna 73 4 0 3 Paulina 7 39 0 4 Martina 8 4 0 5 Ola 64 36 0 6 Marcel 7 4 7 Ewa 57 35 0 8 Ola 8 4 0 9 Paulina 68 37 0 0 Ewelina 64 37 0 Magda 76 40 0 Michał 75 4 3 Magda 74 38 0
Factor Analysis dimensions reduction Total Variance Explained Component Initial Eigenvalues Extraction Sums of Squared Loadings Total % of Variance Cumulative % Total % of Variance Cumulative %,0 74,00 74,00,0 74,00 74,00 0,736 4,50 98,5 3 0,044,478 00,000 Extraction Method: Principal Component Analysis.
Correlation coefficients Component Matrix a Component Hight 0,87 SchoeNo 0,984 Sex0 0,70 Extraction Method: Principal Component Analysis. a. components extracted.
Claster Claster - -,5 - -0,5 0 0,5,5 Component
Total Variance Explained Component Initial Eigenvalues Extraction Sums of Squared Loadings Total % of Variance Cumulative % Total % of Variance Cumulative %,0 74,00 74,00,0 74,00 74,00 0,736 4,50 98,5,736 4,50 98,5 3 0,044,478 00,000 Extraction Method: Principal Component Analysis.
Składowe główne Name Składowa Składowa Zenek,67554 0,80384 Joanna 0,007-0,64837 Paulina -0,675-0,4754 Martina 0,6950 -,4030 Ola -,7507 0,363 Marcel 0,955,6004 Ewa -,7358,0867 Ola 0,6950 -,4030 Paulina -0,79988-0,0358 Ewelina -,0764 0,37 Magda 0,0795-0,8737 Michał,08847,3335 Magda -0,358-0,665
Component Matrix a Component Hight 0,87 -,473 SchoeNo 0,984 -,087 Sex0 0,70 0,70 Extraction Method: Principal Component Analysis. a. components extracted.
Składowe główne Name Składowa Składowa Klasa Zenek,67554 0,80384 Joanna 0,007-0,64837 Paulina -0,675-0,4754 Martina 0,6950 -,4030 Ola -,7507 0,363 Marcel 0,955,6004 Ewa -,7358,0867 Ola 0,6950 -,4030 Paulina -0,79988-0,0358 Ewelina -,0764 0,37 Magda 0,0795-0,8737 Michał,08847,3335 Magda -0,358-0,665
Klasa,5 Skladowa Klasa 0,5 Składowa 0 - -,5 - -0,5 0 0,5,5 Claster Claster -0,5 - -,5 -