viernes, 25 de mayo de 2012

K means




Del codigo resalta la parte en donde realiza los calculos.
Primero checa la distancia entre dos centroides y despues entre los menores de esa comparacion previa para ver el punto mas cercano.
Despues se le agrega el grupo y se recalculan los centroides.



for(int IT = 0; IT < ITERACIONES; IT++){
   System.out.println("");
   for(int i = 0; i < punto.length; i++){
aux1 = (distancia.euclidea( punto[i], centroide[0]) < distancia.euclidea(punto[i], centroide[1])) ? 0 : 1;
aux2 = (distancia.euclidea( punto[i], centroide[2]) < distancia.euclidea(punto[i], centroide[3])) ? 2 : 3;

punto[i].setGrupo((distancia.euclidea( punto[i], centroide[aux1]) < distancia.euclidea(punto[i], centroide[aux2])) ?
 (aux1+1):(aux2+1) );

System.out.println("Punto["+(i+1)+"] En grupo: "+punto[i].getGrupo());
   }
   for(int i = 0; i < centroide.length; i++){
centroide[i] = distancia.recCentroide(punto,centroide[i],(i+1));
   }
 
}

No hay comentarios:

Publicar un comentario