Algoritmos de clustering El agrupamiento de datos o clustering puede definirse como un método para clasificar o describir propiedades de un sistema a partir de un conjunto de datos adquiridos o representativos de dicho sistema. La aplicación de estos algoritmos tiene 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. Algunos de los algoritmos de agrupamiento más utilizados son: tres clusters utilizando FCMC >> 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 | tres clusters utilizando KMC >> datos = load('fcmdata.dat'); >> [U, v, sumd, D]= kmeans(datos,3); >> plot(datos(:,1),datos (:,2),'*') >> hold on >> plot(v(:,1),v(:,2),'rs') | Grupos próximos (r=0.7) 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'); |
Un esquema simplificado de un algoritmo de clustering se muestra en la siguiente figura Como se aprecia, a los datos obtenidos del entorno se les aplica un pre-procesamiento (puede que este bloque no exista), el cual puede incluir la reducción de los datos redundantes o irrelevantes para la aplicación, la utilización de un filtro o la transformación del tipo de información que los datos representan (por ejemplo, en reconocimiento de voz, puede transformarse la señal a su equivalente en el dominio de la frecuencia para detectar picos del espectro). Posteriormente, la información se clasifica, devolviendo un subconjunto representativo de la misma. Los algoritmos de clustering son métodos no supervisados, es decir, no requieren del uso del error entre la salida del sistema y el modelo que se pretende obtener para adaptar los parámetros que posteriormente identificarán al clasificador.
Se denomina “cluster” o "grupo" a un punto usado para representar un conjunto de valores de entre todos los iniciales que tienen algo en común, y que se pueden agrupar en función de determinado rasgo. De esta forma, el resultado de la ejecución del algoritmo será un conjunto de puntos que representan el centro de cada cluster o grupo identificado.
Algunas de las aplicaciones de los algoritmos de clustering son: 1.- Reducir el número de datos obtenidos por sensores a información relevante para la aplicación. 2.- Identificación de grupos de interés a partir de variables que identifican a clientes para crear estrategias de ventas. 3.- Detectar objetos defectuosos en una línea de producción donde esté instalado un sistema de visión. correos, firmas de cheques bancarios, etc.). 6.- Ayuda al diagnóstico médico (análisis de imágenes de rayos-X, tomografía axial computarizada, imágenes ultrasónicas, ECG, EEG, etc.). 7.- Reconocimiento de voz. 8.- Segmentación de imágenes. |