Agrupamiento Kmeans

33,447 views

Published on

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
33,447
On SlideShare
0
From Embeds
0
Number of Embeds
10,719
Actions
Shares
0
Downloads
469
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Agrupamiento Kmeans

  1. 1. Agrupamiento
  2. 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. 3. Concepto <ul><li>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. </li></ul>
  4. 4. Aplicaciones <ul><li>Compresión de voz e imagen </li></ul><ul><li>Reconocimiento de formas </li></ul><ul><li>Preprocesamiento de datos </li></ul><ul><li>Fusión sensorial </li></ul><ul><li>Procesamiento de imagen. </li></ul>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
  5. 5. Algoritmos de agrupamiento más utilizados <ul><li>K-means clustering </li></ul><ul><li>Fuzzy c-means clustering </li></ul><ul><li>Grupos próximos a un entorno (nearest neighborhood clustering) </li></ul><ul><li>Redes de aprendizaje competitivo </li></ul><ul><li>Mapas autoorganizados </li></ul>
  6. 6. Ejemplo de Fuzzy c-means clustering <ul><li>>> 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]; </li></ul><ul><li>>> y=[1 2 3 1.5 2 2.5 2 2 2 1.5 2 </li></ul><ul><li>2.5 2 4 6 3 4 5 4 4 4 3 4 5 2 4 6]; </li></ul><ul><li>>> z=[x; y]'; </li></ul><ul><li>>> save datos.dat z –ascii </li></ul><ul><li>>> fcmdemo </li></ul>
  7. 8. Ejemplo de k-means clustering <ul><li>>> datos = load('fcmdata.dat'); </li></ul><ul><li>>> [U, v, sumd, D] = kmeans(datos,3); </li></ul><ul><li>>> plot(datos(:,1),datos (:,2),'*') </li></ul><ul><li>>> hold on </li></ul><ul><li>>> plot(v(:,1),v(:,2),'rs‘) </li></ul>
  8. 10. Ejemplo de Grupos próximos <ul><li>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]; </li></ul><ul><li>>>[v]=subclust(X,.7); plot(X(:,1),X(:,2),'p'); hold on; plot(v(:,1),v(:,2),'rs'); </li></ul>
  9. 12. K-means: Matriz de datos Matriz de datos : Conjunto de valores de entrada Matriz n x N : n =2 y N =9
  10. 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
  11. 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:
  12. 15. Matriz de clusters o centroides n: Número de variables para representar un punto c: Número de clusters
  13. 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
  14. 17. Algoritmo Condiciones iniciales : c = Número de clusters z = [ ] Matriz de datos v = [ ] Valores iniciales de los clusters <ul><li>Desde l=1 hasta … criterio de mínima distancia </li></ul><ul><li>{ </li></ul><ul><li>Se calcula la matriz de distancias U (utiliza matrices z y v ) </li></ul><ul><li>Se calcula la matriz de pertenencias (utiliza la matriz U ) </li></ul><ul><li>Se calcula la matriz de centroides o clusters (utiliza la matriz z y U ) </li></ul><ul><li>} </li></ul>
  15. 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
  16. 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
  17. 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;
  18. 21. Ejemplo Condiciones iniciales Primera iteración Segunda iteración
  19. 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.
  20. 23. kmeans (II) <ul><li>Parámetros de entrada: </li></ul><ul><li>Criterio para medir la distancia entre la matriz de datos y los centroides (la medida implícita es la norma euclídea). </li></ul><ul><li>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). </li></ul><ul><li>Número de iteraciones en la búsqueda de los centroides (el valor implícito es 100). </li></ul>
  21. 24. 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
  22. 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
  23. 26. 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
  24. 27. Variantes del algoritmo <ul><li>Se basan en: </li></ul><ul><li>Condiciones iniciales de los centroides </li></ul><ul><li>Método para determinar la distancia entre las variables y los centroides </li></ul><ul><li>Cálculo de la pertenencia de variables a un grupo </li></ul><ul><li>Criterio de parada del algoritmo </li></ul>

×