2. Cluster Cluster : Un punto usado para representar un conjunto de valores de entre todos los iniciales que tienen algo en común, y se pueden agrupar en función de determinado rasgo
3.
4.
5.
6.
7.
8.
9.
10.
11.
12. K-means: Matriz de datos Matriz de datos : Conjunto de valores de entrada Matriz n x N : n =2 y N =9
13. Matriz de distancias Matriz de distancias : Se almacena la distancia de cada punto de la matriz de datos a cada centro de grupo o centroide Matriz c x N : c =2 y N =9 d 1,3 d 1,1 d 2,9 d 2,7
14. Cálculo de las distancias k =1.. n ( n representa el número de variables para representar un punto, plano: n =2 ) i =1.. c ( c representa el número de clusters) j =1.. N ( N representa el número de puntos de entrada) Norma Euclídea:
15. Matriz de clusters o centroides n: Número de variables para representar un punto c: Número de clusters
16. Matriz de pertenencias N: número de puntos de entrada c: Número de clusters Se define la pertenencia a uno u otro grupo D =[ 0 0.5000 1.0000 1.1180 2.0616 3.0414 4.0000 4.0311 4.1231 4.1231 4.0311 4.0000 3.0414 2.0616 1.1180 1.0000 0.5000 0] Matriz de distancias Matriz de pertenencias U =[1 1 1 1 1 0 0 0 0 Grupo 1 0 0 0 0 0 1 1 1 1 ] Grupo 2
17.
18. Calcula matriz de distancias % Calcula distancias [n, N]=size(z); % Matris de datos [n, c]=size(v); % Matriz de centroides for i=1:c for j=1:N tempp=0; for k=1:n temp(k)=(z(k,j)-v(k,i))^2; tempp=tempp+temp(k); end d(i,j)=sqrt(tempp); end end
19. Calcula matriz de pertenencias % Se actualiza la matriz de pertenencias % Ejemplo sólo para dos grupos for j=1:N % muestras if d(1,j)>d(2,j) U(1,j)=0; U(2,j)=1; else U(1,j)=1; U(2,j)=0; end end
20. Calcula matriz de centroides %Se calcula la media de los valores de las muestras suma=zeros(n,c); cantidad=zeros(c,1); % Cantidad de valores for c=1:2 for j=1:N if U(c,j) == 1 cantidad(c,1)=cantidad(c,1)+1; suma(:,c)=suma(:,c)+z(:,j); end end media(:,c)=suma(:,c)/cantidad(c,1); end % Se actualiza vector de centroides v=media;
22. kmeans (Matlab) Matlab posee un toolbox de estadística que realiza el algoritmo de k-means clustering. La sintaxis es: [...] = kmeans(...,'param1',val1,'param2',val2,...) donde, entre otras, devuelve: a) La matriz de pertenencia b) La matriz de centroides c) La matriz de distancias.
25. Ejemplo de kmeans (II) Si se ejecuta la función para dos cluster: >> [U, v, sumd, D]=kmeans(z,2); Devuelve: Matriz de pertenencia >> U=U' U = 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 Matriz de centroides >> v v = 5.0000 2.0000 0.7143 2.0000