background image

    
    
    
    
    

P

P

P

P

ROJEK

ROJEK

ROJEK

ROJEKT 

T     

C

C

C

C

YFRO

YFRO

YFRO

YFROWE 

WE 

WE 

WE 

P

P

P

P

RZETW

RZETW

RZETW

RZETWARZANIE 

ARZANIE 

ARZANIE 

ARZANIE 

S

S

S

S

YGNAŁ

YGNAŁ

YGNAŁ

YGNAŁÓW

ÓW

ÓW

ÓW    

 

 
 

„Grupowanie metod

ą k-środków  

oraz  

algorytm k-

środków” 

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

Wykonali: 

Rachwał Marek  

ID 7.1 

Stachyra Przemysław  

ID 7.2 

Tomiło Zbigniew   ID 7.2   

background image

Metoda k-środków jest jedną z najbardziej popularnych metod grupowania. 

Nazwa jej pochodzi 

od  reprezentacji  klastra  poprzez  środek  ciężkości  c

j

(średnią)  jego  punktów.  Do  obliczania  rozbieżności 

pomiędzy  dowolnym  punktem  a  odpowiadającym  mu  środkiem  wykorzystuje  się  funkcję  odległości 
(zazwyczaj  normę  L

2

).  Dla  normy  L

suma  kwadratów  wszystkich  rozbieżności  pomiędzy  punktami  a 

odpowiadającymi im środkami ciężkości równa się całkowitej wewnątrz klastrowej wariancji: 

 

( )

∑ ∑

=

=

k

j

C

x

j

i

j

i

c

x

C

E

...

1

2

 

 
 

Rozróżnia się dwie wersje metody k-środków: 

 
Metoda 1 – algorytm Forgy'a 

dzielimy zbiór danych na k losowych klastrów 

dla każdego klastra obliczamy środek ciężkości 

każdy obiekt przypisujemy do klastra reprezentowanego przez najbliższy środek ciężkości 

powtarzaj  cykl  od  punktu  drugiego  do  momentu,  gdy  kryteria  stopu  zostaną  spełnione  (np.  gdy 
nie dokonano żadnej realokacji) 

 
Własności metody 1: 

dobra dla dowolnej L

normy 

pozwala na łatwą paralelizację (równoległość) 

niewrażliwa na kolejność (porządek) obiektów 

 

Przykład: 

 

background image

Metoda 2 

dzielimy zbiór danych na k losowych klastrów 

dla każdego klastra obliczamy środek ciężkości 

przesuwamy jeden obiekt do potencjalnie nowegoklastra 

jeśli przesunięcie daje pozytywny efekt, obiekt jest realokowany i obliczamy środki ciężkości dla 
zmienionych klastrów 

powtarzamy cykl od kroku trzeciego do momentu, gdy krytaria stopu zostaną spełnione 

 

Własności metody 2: 

 

obliczalnie możliwa tylko dla normy  L

• 

daje lepsze rezultaty niż algorytm Forgy'a 

 

Zalety 

relatywnie efektywna: O (tkn), gdzie n to # obiektów, k to # klastrów, t to # iteracji – zazwyczaj 
k, t << n 

często  zatrzymuje  się  na  lokalnym  maksimum.  Globalne  maksimum  można  znaleźć  stosując 
techniki takie jak: deterministyczne wyżarzanie, algorytmy genetyczne 

 

Słabości 

środek ciężkości musi zostać zdefiniowany – a co się dzieje z atrybutami symbolicznymi 

liczba klastrów k musi zostać ustalona na początku 

niezdolna do uchwycenia szumu oraz obiektów oddalonych 

niezdolna do budowy klastrów o niewypukłych kształtach 

 
Podstawową  zaletą  algorytmu  k-środków  jest  szybkość  działania.  Algorytm  ten  jest  podstawą  dla 
algorytmów  grupowania  dużych  zbiorów  danych, np.  opisywany  jest  algorytm  grupowania  oparty na      
k-środkach i działający na danych nie mieszczących się w pamięci RAM. K-środki mają małe wymagania 
pamięciowe,  ponieważ  przechowują  tylko  listę  przykładów,  przypisań  przykład-klaster  i  środków 
klastrów. 
 
 
Kod programu: 

a=rand(1,100); 
plot(a,zeros(1,100),'*'); 
b=rand(1,6); 
for iter=1:1:10 
hold off 
M=[(a-b(1)).^2;(a-b(2)).^2;(a-b(3)).^2;(a-b(4)).^2;(a-b(5)).^2;(a-b(6)).^2;]; 
[P,CLUSTERNO]=min(M); 
u=['r','g','b','c','m','y']; 
figure 
for i=1:1:6 
[x,y]=find(CLUSTERNO==i); 
col=[]; 
for k=1:1:length(x) 
col=[col a(x(k),y(k))]; 
end 
plot(col,zeros(1,length(col)),strcat(u(i),'*')) 
hold on 
b(i)=mean(col); 
end 
pause(0.01) 
end 

 
 

background image

Otrzymane wyniki po pierwszym uruchomieniu programu: 

 

 

 

 

 

 

 

 

 

 

 

 
 
 

background image

 
 
 

  Name               

Size                   Bytes  Class 

****************************************************************** 
  CLUSTERNO        

1x100                    800  double array 

  M                

 

6x100                   4800  double array 

  P                

 

1x100                    800  double array 

  a                

 

1x100                    800  double array 

  b                

 

1x6                       48  double array 

  col              

 

1x14                     112  double array 

  i                

 

1x1                        8  double array 

  iter             

 

1x1                        8  double array 

  k                

 

1x1                        8  double array 

  u                

 

1x6                       12  char array 

  x                

 

1x14                     112  double array 

  y                

 

1x14                     112  double array 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Materiały: 

  Algorithm Collections for Digital Signal Processing Applications using Matlab – E.S. Gopi 
  skrypt Politechniki Warszawskiej oraz Poznańskiej 
  Sztuczna inteligencja i systemy doradcze 
  http://www.ise.pw.edu.pl/~cichosz/mow/wyklad/mow-w7/mow-w7.html 
  http://www.users.pjwstk.edu.pl/~krz/research/magister/node22.html