Sunteți pe pagina 1din 28

Agrupamiento

Cluster
Cluster: Un punto usado para representar un

conjunto de valores de entre todos los iniciales que tienen algo en comn, y se pueden agrupar en funcin de determinado rasgo

Concepto
Algoritmos de agrupamiento: Tienen como objetivo devolver al usuario una serie de puntos que en cierto modo representan al resto de puntos iniciales por su posicin privilegiada con respecto al total

Aplicaciones
Aprendizaje no supervisado: No requieren del uso del error entre la salida del sistema y el modelo que se pretende obtener para adaptar los parmetros

Compresin de voz e imagen Reconocimiento de formas Preprocesamiento de datos Fusin sensorial Procesamiento de imagen

Algoritmos de agrupamiento ms utilizados


K-means clustering Fuzzy c-means clustering
Grupos prximos a un entorno (nearest neighborhood clustering) Redes de aprendizaje competitivo Mapas autoorganizados

Ejemplo de Fuzzy c-means clustering


>> x=[0 0 0 1 1 1 2 3 4 5 5 5 6 6 6 7 7 7 8 9 10 11 11 11 12 12 12]; >> y=[1 2 3 1.5 2 2.5 2 2 2 1.5 2 2.5 2 4 6 3 4 5 4 4 4 3 4 5 2 4 6]; >> z=[x; y]'; >> save datos.dat z ascii >> fcmdemo

Ejemplo de k-means clustering


>> datos = load('fcmdata.dat'); >> [U, v, sumd, D] = kmeans(datos,3); >> plot(datos(:,1),datos (:,2),'*') >> hold on >> plot(v(:,1),v(:,2),'rs)

Ejemplo de Grupos prximos


x=[0 0 0 1 1 1 2 3 4 5 5 5 6 6 6]'; y=[1 2 3 1.5 2 2.5 2 2 2 1.5 2 2.5 1 2 3]'; x1=x+7; y1=y.*2; x2=x1+7; y2=y.*(-2); x=[x; x1; x2]; y=[y; y1; y2]; X=[x,y]; >>[v]=subclust(X, .7); plot(X(:,1),X(:,2),'p'); hold on; plot(v(:,1),v(:,2),'rs');

K-means: Matriz de datos


Matriz de datos: Conjunto de valores de

entrada

Matriz nxN: n=2 y N=9

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


d1,1
d2,7

d1,3

Matriz cxN: c=2 y N=9

d2,9

Clculo de las distancias


Norma Eucldea:

k=1..n (n representa el nmero de variables para representar un punto, plano:n=2) i=1..c (c representa el nmero de clusters) j=1..N (N representa el nmero de puntos de cada variable)

Otras medidas de distancias

enlace

Matriz de clusters o centroides

n: Nmero de variables para representar un punto

c: Nmero de clusters

2 4 V 2.3 2

Matriz de pertenencias
Se define la pertenencia a uno u otro grupo

c: Nmero de clusters N: nmero de puntos de cada variable

Matriz de distancias
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 pertenencias
U =[1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1] Grupo 1 Grupo 2

Algoritmo
Condiciones iniciales: c = Nmero de clusters z = [ ] Matriz de datos v = [ ] Valores iniciales de los clusters
Desde l=1 hasta criterio de mnima distancia {

Se calcula la matriz de distancias U (utiliza matrices z y v) Se calcula la matriz de pertenencias (utiliza la matriz U) Se calcula la matriz de centroides o clusters (utiliza la matriz z y U)
}

Calcula matriz de distancias


% Calcula distancias [n, N]=size(z); % Matriz de datos [n, c]=size(v); % Matriz de centroides for i=1:c for j=1:N tempp=0; z=[1 1 1 2 3 4 5 5 5; for k=1:n 1.5 2 2.5 2 2 2 1.5 2 2.5] temp(k)=(z(k,j)-v(k,i))^2; tempp=tempp+temp(k); v=[1 5; end 1.5 2.5] d(i,j)=sqrt(tempp); end d =[0 0.5000 1.0000 1.1180 2.0616 3.0414 4.0000 4.0311 4.1231 end 4.1231 4.0311 4.0000 3.0414 2.0616 1.1180 1.0000 0.5000 0]

Calcula matriz de pertenencias


% Se actualiza la matriz de pertenencias % Ejemplo slo para dos grupos for j=1:N 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
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]

U =[1 0

1 0

1 0

1 0

1 0

0 1

0 1

0 1

0 1]

Grupo 1 Grupo 2

Calcula matriz de centroides


%Se calcula la media de los valores de las muestras suma=zeros(n,c); cantidad=zeros(c,1); U =[1 1 1 1 1 0 0 0 0 Grupo 1 0 0 0 0 0 1 1 1 1 ] Grupo 2 % Cantidad de valores for c=1:2 z=[1 1 1 2 3 4 5 5 5; for j=1:N 1.5 2 2.5 2 2 2 1.5 2 2.5] if U(c,j) == 1 cantidad(c,1)=cantidad(c,1)+1; v= suma(:,c)=suma(:,c)+z(:,j); [1.6000 4.7500 2.0000 2.0000] end end media(:,c)=suma(:,c)/cantidad(c,1); end % Se actualiza vector de centroides v=media;

Ejemplo
Condiciones iniciales

Primera iteracin

Segunda iteracin

kmeans (Matlab)
Matlab posee un toolbox de estadstica 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

kmeans (II)
Parmetros de entrada: Criterio para medir la distancia entre la matriz de datos y los centroides (la medida implcita es la norma eucldea)
La forma en que se establecen las condiciones iniciales de los centroides (de forma predeterminada escoge como valores iniciales de los centroides a valores de la matriz de datos)

Nmero de iteraciones en la bsqueda de los centroides (el valor implcito es 100)

Ejemplo de utilizacin de kmeans


>> z=[x, y] z= 0 1.0000 0 2.0000 0 3.0000 1.0000 1.5000 1.0000 2.0000 1.0000 2.5000 2.0000 2.0000 3.0000 2.0000 4.0000 2.0000 5.0000 1.5000 5.0000 2.0000 5.0000 2.5000 6.0000 1.0000 6.0000 2.0000 6.0000 3.0000

Ejemplo de kmeans (II)


Si se ejecuta la funcin para dos cluster: >> [U, v, sumd, D]=kmeans(z,2);
Devuelve: Matriz de pertenencia >> U=U' U= 2 2 2 2 2 2 1 1 Matriz de centroides >> v v= 5.0000 2.0000 0.7143 2.0000

Ejemplo de kmeans (III)


Matriz de distancias >> D D= 26.0000 1.5102 25.0000 0.5102 26.0000 1.5102 16.2500 0.3316 16.0000 0.0816 16.2500 0.3316 9.0000 1.6531 4.0000 5.2245 1.0000 10.7959 0.2500 18.6173 0 18.3673 0.2500 18.6173 2.0000 28.9388 1.0000 27.9388 2.0000 28.9388

Variantes del algoritmo


Se basan en:
Condiciones iniciales de los centroides Mtodo para determinar la distancia entre las variables y los centroides

Clculo de la pertenencia de variables a un grupo Mtodo de actualizacin de los centroides Criterio de parada del algoritmo

S-ar putea să vă placă și