Sei sulla pagina 1di 27

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 entrada)

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 entrada
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); % 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

Calcula matriz de pertenencias


% Se actualiza la matriz de
pertenencias
% Ejemplo slo 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

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;

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
Criterio de parada del algoritmo

Potrebbero piacerti anche