agrupamiento kmeans

27
Agrupamiento

Upload: omar-sanchez

Post on 14-Jun-2015

26.898 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Agrupamiento Kmeans

Agrupamiento

Page 2: Agrupamiento Kmeans

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

Page 3: Agrupamiento Kmeans

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 posición privilegiada con respecto al total.

Page 4: Agrupamiento Kmeans

Aplicaciones

Compresión de voz e imagenReconocimiento de formas Preprocesamiento de datos Fusión sensorialProcesamiento de imagen.

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

Page 5: Agrupamiento Kmeans

Algoritmos de agrupamiento más utilizados

K-means clustering

Fuzzy c-means clustering

Grupos próximos a un entorno (nearest neighborhood clustering)

Redes de aprendizaje competitivo

Mapas autoorganizados

Page 6: Agrupamiento Kmeans

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

Page 7: Agrupamiento Kmeans
Page 8: Agrupamiento Kmeans

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

Page 9: Agrupamiento Kmeans
Page 10: Agrupamiento Kmeans

Ejemplo de Grupos próximos

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');

Page 11: Agrupamiento Kmeans
Page 12: Agrupamiento Kmeans

K-means: Matriz de datos

Matriz de datos: Conjunto de valores de entrada

Matriz nxN: n=2 y N=9

Page 13: Agrupamiento Kmeans

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 cxN: c=2 y N=9

d1,3

d1,1

d2,9

d2,7

Page 14: Agrupamiento Kmeans

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:

Page 15: Agrupamiento Kmeans

Matriz de clusters o centroides

n: Número de variables para representar un punto

c: Número de clusters

23.2

42V

Page 16: Agrupamiento Kmeans

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 pertenenciasU =[1 1 1 1 1 0 0 0 0 Grupo 1 0 0 0 0 0 1 1 1 1 ] Grupo 2

Page 17: Agrupamiento Kmeans

AlgoritmoCondiciones iniciales:c = Número de clustersz = [ ] Matriz de datosv = [ ] Valores iniciales de los clusters

Desde l=1 hasta … criterio de mínima 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)

}

Page 18: Agrupamiento Kmeans

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); endend

Page 19: Agrupamiento Kmeans

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; endend

Page 20: Agrupamiento Kmeans

Calcula matriz de centroides%Se calcula la media de los valores de las muestrassuma=zeros(n,c);cantidad=zeros(c,1);% Cantidad de valoresfor 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 centroidesv=media;

Page 21: Agrupamiento Kmeans

Ejemplo

Condiciones iniciales

Primera iteración Segunda iteración

Page 22: Agrupamiento Kmeans

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.

Page 23: Agrupamiento Kmeans

kmeans (II)

Parámetros de entrada:

Criterio para medir la distancia entre la matriz de datos y los centroides (la medida implícita es la norma euclídea).

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

Número de iteraciones en la búsqueda de los centroides (el valor implícito es 100).

Page 24: Agrupamiento Kmeans

Ejemplo de utilización 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

Page 25: Agrupamiento Kmeans

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 1Matriz de centroides>> vv = 5.0000 2.0000 0.7143 2.0000

Page 26: Agrupamiento Kmeans

Ejemplo de kmeans (III)

Matriz de distancias>> DD = 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

Page 27: Agrupamiento Kmeans

Variantes del algoritmo

Se basan en:

Condiciones iniciales de los centroides

Método para determinar la distancia entre las variables y los centroides

Cálculo de la pertenencia de variables a un grupo

Criterio de parada del algoritmo