You are on page 1of 27

Agrupamiento

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

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

.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 parámetros  Compresión de voz e imagen  Reconocimiento de formas  Preprocesamiento de datos  Fusión sensorial  Procesamiento de imagen.

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 .

dat z –ascii >> fcmdemo . >> y=[1 2 3 1.5 2 4 6 3 4 5 4 4 4 3 4 5 2 4 6].5 2 2 2 1. y]'.5 2 2. >> save datos.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].  >> z=[x.5 2 2.

.

'*') >> hold on >> plot(v(:. v.1).datos (:. D] = kmeans(datos.3). sumd.dat'). >> plot(datos(:.v(:.'rs‘) . >> [U.Ejemplo de k-means clustering • • • • • >> datos = load('fcmdata.2).1).2).

.

'rs').2).y].v(:. plot(v(:.5 2 2. x1. y1.X(:. x2=x1+7.*2. x2]. . x=[x. >>[v]=subclust(X.1). y2=y.5 1 2 3]'. y2]..*(-2). y=[y.Ejemplo de Grupos próximos x=[0 0 0 1 1 1 2 3 4 5 5 5 6 6 6]'. plot(X(:. x1=x+7.2).'p'). X=[x. y1=y.1).5 2 2. hold on. y=[1 2 3 1.7).5 2 2 2 1.

.

K-means: Matriz de datos Matriz de datos: Conjunto de valores de entrada Matriz nxN: n=2 y N=9 .

9 .1 d2.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.3 Matriz cxN: c=2 y N=9 d2.7 d1.

c (c representa el número de clusters) j=1.N (N representa el número de puntos de entrada) .. plano:n=2) i=1..Cálculo de las distancias Norma Euclídea: k=1.n (n representa el número de variables para representar un punto..

3 2 .Matriz de clusters o centroides n: Número de variables para representar un punto c: Número de clusters 2 4  V   2.

0311 4.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 .5000 1.0000 4.1231 4.0616 3.1180 1.0000 0.0000 1.1180 2.Matriz de pertenencias Se define la pertenencia a uno u otro grupo c: Número de clusters N: número de puntos de entrada Matriz de distancias D =[ 0 0.1231 4.0311 4.0414 4.0000 3.0616 1.0414 2.

Algoritmo Condiciones iniciales: c = Número de clusters z = [ ] Matriz de datos v = [ ] 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) } .

end end .i))^2. % Matris de datos [n. % Matriz de centroides for i=1:c for j=1:N tempp=0.j)-v(k.j)=sqrt(tempp). tempp=tempp+temp(k). end d(i.Calcula matriz de distancias % Calcula distancias [n. c]=size(v). N]=size(z). for k=1:n temp(k)=(z(k.

j)=1.j)=1.j)=0.j) U(1.j)=0. else U(1. U(2.j)>d(2.Calcula matriz de pertenencias % Se actualiza la matriz de pertenencias % Ejemplo sólo para dos grupos for j=1:N % muestras if d(1. end end . U(2.

c)+z(:.1)=cantidad(c. cantidad=zeros(c. end % Se actualiza vector de centroides v=media. .c)=suma(:.Calcula matriz de centroides %Se calcula la media de los valores de las muestras suma=zeros(n. suma(:. % Cantidad de valores for c=1:2 for j=1:N if U(c.1). end end media(:.1).c)/cantidad(c.j).c).c)=suma(:.j) == 1 cantidad(c.1)+1.

Ejemplo Condiciones iniciales Primera iteración Segunda iteración .

La sintaxis es: [.) donde... devuelve: a) La matriz de pertenencia b) La matriz de centroides c) La matriz de distancias..'param2'. entre otras. ...kmeans (Matlab) Matlab posee un toolbox de estadística que realiza el algoritmo de k-means clustering.] = kmeans(.val2.'param1'....val1.

.  Número de iteraciones en la búsqueda de los centroides (el valor implícito es 100).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).

0000 2.0000 2.0000 2.0000 1.0000 2.5000 1.0000 1.0000 3.0000 3.0000 2.0000 5.0000 6.0000 0 2.5000 5.0000 4.0000 .0000 5.0000 2. y] z= 0 1.Ejemplo de utilización de kmeans >> z=[x.0000 6.5000 6.0000 2.0000 1.0000 1.0000 1.5000 2.0000 2.0000 0 3.

D]=kmeans(z.Ejemplo de kmeans (II) Si se ejecuta la función para dos cluster: >> [U. 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.0000 2 1 1 1 1 1 1 .2). v.7143 2. sumd.

0000 27.2500 18.5102 26.0000 0.6173 2.5102 16.3673 0.2500 18.9388 2.9388 .0000 28.2500 0.0000 0.Ejemplo de kmeans (III) Matriz de distancias >> D D= 26.5102 25.0000 5.0000 1.0000 10.7959 0.0000 1.0000 28.9388 1.6531 4.2500 0.3316 16.3316 9.2245 1.0816 16.0000 1.6173 0 18.

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 .