Algoritmos de Agrupamiento
Algoritmos de Agrupamiento
Algoritmos de Agrupamiento
0pWRGRVGHDJUXSDPLHQWR
>&OXVWHULQJ@
N?)+OH7JP?=+79/ >@."FRQTSFU)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)6)M;2(
!"
$#&%'
)* +-,/.021 3/45(5(687,
Las funciones de densidad de probabilidad suelen tener una moda o un máximo en una
región; es decir, las observaciones tienden a agruparse en torno a una región del espacio de
patrones cercana a la moda. Las técnicas de agrupamiento analizan el conjunto de observaciones
disponibles para determinar la tendencia de los patrones a agruparse. Estas técnicas permiten
realizar una clasificación asignando cada observación a un agrupamiento [cluster], de forma que
cada agrupamiento sea más o menos homogéneo y diferenciable de los demás.
!"
$#&%('
(")*(&+-,/.0214365/7869/:2025<;=02><;8675@?=34A.,/B436=025
W[O
· es el vector patrón correspondiente al ejemplo i-ésimo ( ). [W O"tvuw
x"U
· es el centro del j-ésimo cluster ( ). x"UItvuw
y
· es la matriz de pertenencia ( z{I|
) tal que es 1 si }~OU
y 0 en caso contrario. W[O t4ELU
|
· es el número de clusters (clases en el problema de clasificación)
z
· es el número de ejemplos del conjunto de casos de entrenamiento.
ANOTACIONES
La función no es convexa, por lo que pueden existir mínimos locales no óptimos.
La minimización de la función requiere conocer a priori el número deseado de
|
agrupamientos (si no el problema sería trivial: un agrupamiento para cada caso de
entrenamiento). No obstante, existen técnicas que permiten ajustar el número de
agrupamientos (fusionando y dividiendo agrupamientos), así como tratar elementos
discordantes [ //
en inglés] debidos, por ejemplo, a ruido en la adquisición de datos.
!"
$#&%'
)+*-,/.10235476892 :<;>=@?0+35AB>?8941=(C>62
La agrupamientos detectados dependen del algoritmo empleado, del valor dado a sus
parámetros, de los datos utilizados y de la medida de similaridad adoptada.
Repetir
En las siguientes páginas se muestran algunos algoritmos de los más empleados. Sin
embargo, existen otros muchos métodos de agrupamiento. Por ejemplo, los algoritmos DHB y
DHF utilizan dos estrategias de búsqueda básicas: el algoritmo DHB realiza una búsqueda en
anchura mientras el algoritmo DHF hace una búsqueda en profundidad. El conocido algoritmo
de Forgy no es más que una extensión de DHF que permite adaptar el número de agrupamientos
[DEGFHJIKMLNH
] obtenidos.
Los tres algoritmos citados en el párrafo anterior (DHB, DHF y algoritmo de Forgy)
realizan una exploración exhaustiva del espacio de búsqueda, lo cual impide su utilización en la
muchos problemas reales. En las siguientes referencias se puede obtener más información sobre
esos tres algoritmos:
OQPSR T$R UWVYX[Z]\_^`RGa>R b F5cWKMHMdfe P E gihL X I!jlkmH"nhL a EGFHJIKML X[Z g b<V I V`opR q LK Z I X DKsr V EGE[t-u"vlwlw R
OyxzR PSR { V \|xzR!}YR T&V x X[YX Z X ZlV b<V Va X[Z X X!JX[Z X[
} K V LDMj } I!HNL k V IKKg E X KMH opR q>V IGIKML k~Zm^KE7KdDhe g ZYFlX IEX I h Zk~l K t-Hu"vlh wlvtNE g(H RI l wlEGFv HJR IKML gQI E g
r-c L
!"
$#&%('
Técnicas de Algorítmica, como el )+*-,/.10-24357698;:1:+572+0<*-:"=
[enfriamiento simulado], nos
permiten agrupar conjuntos de datos más grandes sin la necesidad de realizar una exploración
exhaustiva del espacio de posibles asignaciones. Las siguientes referencias recogen cómo se puede
emplear el enfriamiento simulado para resolver problemas de agrupamiento:
> )+?!@A?!)+50<*-,CBED$? 8F0-GH.10I3!21:KJMLN8O)+*-,/.10-243576P8;:1:+572+0<*-:"=9QRS3!T+5VUW0<.GH357S*-:"=YXWSR[Z\0<57,^]_?
WX 243<357S`:bac5dR=(:+*I3*<R:fe[g hAi"j1j(ih`k=(G?i1l1l\m\n`i1l1l"o1?
> ac?qpr? D$0<5*-:sBtac?<UW? uf.[Z\57G7JvLxwWyzk{57S*-,/57:43!GF*-:|XWSRN} 5d"3*<R:921:16sUW0<.GH357S*-:"=~Z)+*-,/.10-243576
8;:1:+572+0<*-:"=$]_? XW243<357S`:bac5dR=(:+*I3*<R:fe1ehAi"j1o1jh`k=(G?[e(i\m\nqe1e(l"?
8F0 =K.:121GW,/576+*-6121GW6+5F6+*-GH3!21:+d*-2f.[3*<0<*!_216121G"Q\S5d.157:4357,/57:435
uf*-GH3!21:+d*-2f5.1d0I!6+572 : (
,
) = (
−
) (
−
) =
−
2
2
1.
2. uf*-GH3!21:+d*-25.1d0I!6+572:+RS`,b2+0<*!2[6[2
: Igual que la anterior, salvo que los valores de cada
variable se normalizan en el intervalo [0,1] para que unas características no influyan más
que otras al calcular las distancias.
3. 1 2 ( − ) 2
uf*-GH3!21:+d*-2f5.1d0I!6+572k{R:16+57S`21612 : 2 ( , ) = ∑ σ =1
4. uf*-GH3!21:+d*-2|6+5M21T12+0-21:+R[Z\*-G : ( , ) = ( − ) Σ ( − )
2 −1
!"
$#&%('
(*),+.-0/213452687:9;=<>?689@7:52;=<9&9;=AB17:52687:9;=<>?CD7:683=E:52@>8F,G=7:683=E:5H<9@I-0;;95HE:7:;/HJ
El problema del agrupamiento se puede resolver con cualquier técnica general que permita
realizar una exploración del espacio de búsqueda (el espacio de las posibles asignaciones). Una
posible forma de resolverlo (bastante ineficiente por cierto) se basa en la utilización de un
algoritmo de enfriamiento simulado:
Aceptación de una configuración con mayor energía Aceptación de la asignación si se espera una mejor
Nuestra función objetivo puede ser, por ejemplo, la suma de las distancias al cuadrado de
los patrones a los centroides de los agrupamientos (la función que minimiza el K-Means).
K&LNMOLNPDQORS:TM?UOL&VM2Q?MOV2LWNQ?Q2XS Y=M2QORS:TM
flag = falso
Para i de 1 a n
Si u > P
[ [ \
flag = true
Si = { c | 1 c C, c ai }
Seleccionar aleatoriamente un elemento c de Si
Asignar el patrón i al cluster c [ai:=c]
!"
$#&% '
)+* ,.-/021!34-6587+9",:/;<=9>340?7A@B1-DC-@E7A@GFH/0I9>340?7A@B1-6J0I34;>*I9>58-
Inicialización:
· Fijar T0 (temperatura inicial), (temperatura final) y µ (factor [<1])
· Seleccionar un conjunto arbitrario de C clusters (vectores Abest y Acandidate)
· Calcular la función objetivo: Jbest y Jcandidate
· T = T0
Mientras T K
Generar una nueva asignación Atrial (con valor Jtrial)
L
M
Generar un número aleatorio y U(0,1)
Si y exp(-(Jtrial-Jcandidate)/T)
Jcandidate = Jtrial
Acandidate = Atrial
si no
Acandidate = Atrial
Jcandidate = Jtrial
Si Jtrial < Jbest
Abest = Atrial
Jbest = Jtrial
count = 0
si no
count++
Si count K N
T = µT
!"
$#&%('
(*)(,+.-/0210,321324'/35/6!780:9;2<2;>=?A@ABCED;2FG=HACEDC?'IJ2KLD?NMOI?A@AJ2KP
Este algoritmo incluye una clase de rechazo a la hora de clasificar observaciones. Los
patrones se asignan por la regla de mínima distancia. Algunos patrones no son clasificados si el
cuadrado de la distancia al agrupamiento más cercano es mayor que el umbral .
QSR2TVU2WYX"Z!T[\
Umbral de distancia (al cuadrado)
Fracción (entre 0 y 1)
{Xi} Conjunto de patrones
]^R2T_NR8`5aAXb\
A Número actual de agrupamientos
Zi Centroide del agrupamiento i
c a dL[T_eZ!WY[gf^XER"d'ThiSR2WY_AXbj8Z[
Inicialización: A=1, Z1=X1
!"
$#&%'#
)+*-,.0/21!30465,759801*-:6;<465,
La tabla siguiente recoge los resultados obtenidos con la aplicación del algoritmo de
agrupamiento adaptativo a un conjunto de cuatro imágenes 256x256 de una galaxia espiral
(correspondientes a las bandas R, G, B e IR). La columna “bondad estimada” corresponde al
porcentaje de clasificación obtenido utilizando los agrupamientos obtenidos para clasificar las
muestras no etiquetadas del conjunto de datos. Para este conjunto de datos se establecen tres
clases: estrellas, brazos de la galaxia y fondo.
G
En esta tabla se puede apreciar como el parámetro fundamental a la hora de conseguir
un “buen” agrupamiento con este algoritmo es el umbral . Cuanto mayor sea este umbral, menos
agrupamientos se formarán.
G El parámetro influye menos en el comportamiento final del método adaptativo.
!"
$#&%('
)+*,.-0/21434567893;:<>=&?@7AB</2345DC;EF6/2GH62IJLKM?@/21434567893;:<&89N@O46289?;:62J7?4IA62?@P
Como sucedía con el método adaptativo, el algoritmo de Batchelor y Wilkins es un
método de agrupamiento con número de clases desconocido.
QLR4SUT4V0W"X!SYZ
f Fracción de la distancia media entre agrupamientos
Igual que sucedía con el método adaptativo, los resultados obtenidos dependen en gran
medida de los parámetros con los que se llama al algoritmo.
!"
$#&%'"(
(*)+-,-.0/21234567198:;.0<2=?>@67:840<2=BADC*)E&)2FG<2HIKJ::LMN"O2P2QSR
El algoritmo de las K medias (o T$U!VXWZY2[2\
) es probablemente el algoritmo de agrupamiento
más conocido. Es un método de agrupamiento heurístico con número de clases conocido (K). El
algoritmo está basado en la minimización de la distancia interna (la suma de las distancias de los
patrones asignados a un agrupamiento al centroide de dicho agrupamiento). De hecho, este
algoritmo minimiza la suma de las distancias al cuadrado de cada patrón al centroide de su
agrupamiento.
Repetir
K Bondad estimada
3 94.89 %
5 92.04 %
7 98.16 %
!"
$#&%'"'
)+*,.-./10323456782:9:;$-=<+>@?19A4BBCED=;GF3HC23785!IBCJ-KCF3LM65!NEBO<MBF34PQR>S423PBCT4BU
GRASP es una técnica de los años 80 que tiene como objetivo resolver problemas difíciles
en el campo de la optimización combinatoria. Esta técnica dirige la mayor parte de su esfuerzo
a construir soluciones de alta calidad que son posteriormente procesadas para obtener otras aún
mejores.
Los algoritmos GRASP son algoritmos de tipo iterativo en los que cada iteración incluye
una fase de construcción de una solución y otra de postprocesamiento en la cual se optimiza la
solución generada en la primera fase.
Para i de 1 a L
Solución = Mutación(Solución)
!"
$#&%'(
)+* ,.-/021!34-$,5/6687:9
Como algoritmo greedy se puede utilizar una versión simplificada del algoritmo de
Batchelor y Wilkins. Como centros de los agrupamientos se escogerán patrones del conjunto de
entrenamiento de forma que el patrón escogido en cada momento sea el más alejado a los
centroides ya fijados (siendo la distancia a un conjunto de centroides el mínimo de las distancias
a cada centroide). Obviamente, el primer centroide ha de escogerse de forma aleatoria.
; 6<8=?>@0BAC34-D7@6E,.68>@68/C=@<0GF>H7@6+A-?*GI?<0G->@68A,5/6687:9J=@*G68=K1-/0B=?A
6L 8AQ1!/0G<"1En
687 laM =?construcción
>?7@0B7?=K16 N 0BAQ1 de soluciones greedy aleatorias se utiliza una lista de candidatos [L+MONEP
] en la que se incluyen los mejores aspirantes a formar parte de la
solución. De esa lista se escoge un candidato aleatoriamente.
Un posible algoritmo greedy aleatorio consiste en utilizar como RCL la lista de los
patrones más alejados a los centroides ya escogidos. El tamaño de esta lista puede ser, por
ejemplo, igual al 5% de las muestras disponibles.
R?S <8>@0G<8=H7@6UTWVAX?I?687?=Y*G-?<8=@*
La estrategia de búsqueda local se utiliza para mejorar la solución obtenida mediante en
el mecanismo de generación de soluciones greedy aleatorias. Mientras la solución no sea un
óptimo local, se encuentra una solución mejor entre los vecinos de la solución actual.
Como técnica de búsqueda local se puede emplear, por ejemplo, el conocido algoritmo
de las K medias, cuya convergencia depende de la configuración inicial de los clusters.
!"
$#&%'"(
)+*,-.0/213.04 56/7.0,89/:;,=<?>2.0/<+.0,A@B-DC!>014E3F
flag = falso
Para i de 1 a n
Si u > P
H H I
flag = true
Si = { c | 1 c C, c ai }
Seleccionar aleatoriamente un elemento c de Si
Asignar el patrón i al cluster c [ai:=c]
!"
$#&%'(
A continuación se mostrarán los valores obtenidos para distintos parámetros a lo largo de
las iteraciones de un algoritmos GRASP. Para ilustrar la distribución de estos valores se utilizarán
F0G :IHKJL)M,+.CAN4
cinco particiones distintas de la )*,+.-0/ -1/*324,+658795:<;=79>
(por su simplicidad) y el *3?A@,4,BC2DE4
(sin operador de mutación).
Se puede apreciar a partir de los datos de esta tabla que la moda de las distribuciones de
los distintos parámetros suele encontrarse muy cerca del máximo obtenido. Esta moda
corresponde con la solución que se obtendría con un algoritmo greedy simple (seguido de la
técnica de búsqueda local correspondiente). La inclusión de cierta aleatoriedad en el algoritmo
GRASP permite obtener de vez en cuando soluciones mejores a costa de obtener también algunas
soluciones peores que las que se obtendrían con el algoritmo simple.
\I]_^a`!b]dc3e,f]Agh0ikj O
!"
$#&%'(
*,+-./1032!465 /879/&.:;4=<> ?>@.149.>@A0B/10B/:C.+065 D032+E79/&/1032!-/10=4=FG>@/1032+
!"
$#&%')(
*)+,.-./10323456782:9;&<3034=><37851;?@62:AB;C=;?C51<D/
EF<34G378;642 HI;ABC451>C51J3?
K Máximo número de agrupamientos
L Umbral de distancia para crear agrupamientos
M Umbral de distancia para mezclar agrupamientos
N Longitud del lote:
Número de patrones considerados entre procesos de mezcla
O Umbral para la eliminación de agrupamientos (porcentaje respecto a M)
Cada M patrones, se mezclan agrupamientos por cercanía (se mezclan dos agrupamientos
si la distancia entre ellos es menor que C). Si, tras la mezcla por cercanía, quedan más
agrupamientos que los deseados por el usuario (K), se mezclan los agrupamientos por tamaño (se
mezclan los agrupamientos con menos del T% de M miembros con sus agrupamientos más
cercanos). Si aún quedan demasiados agrupamientos, se mezclan los agrupamientos más cercanos
hasta obtener el número deseado de agrupamientos K.
!"
$#&%')(
(*)+-,-.0/21234567198:<;>=$,@?,
ISODATA es el acrónimo de ACBDFEHGIBJ0KDMLNDO PQRMETS<G2UNJ!VCJWU"S>X>GIB!G&YZU2GNO [<\JW\$]2D^F_2UNJ0`2a2DF\
(con
la A añadida para hacer pronunciable el nombre), un iterativo método de agrupamiento que, como
ya sucedía con el método de agrupamiento secuencial, requiere un considerable esfuerzo para
ajustar adecuadamente todos sus parámetros. Además, éstos pueden modificarse en cada iteración
del algoritmo.
bdc23e267f531 =9fgHh340ih40j2k
l Número deseado de agrupamientos
, Número inicial de agrupamientos
k Umbral del número de patrones para la eliminación de agrupamientos
g Umbral de desviación típica para la división de un agrupamiento
h Umbral de distancia para la unión de agrupamientos
m Máximo número de mezclas en una iteración
8 Máximo número de iteraciones permitidas
AHUNJ0^JWGNOWn-DFUIBDM\DM\DO0D^^J0oU2G2UpO0o\q^DFUIB!Eo\srNDYtG"S<EausG2n-J0DFUIBo\v
w Up^FG2r2GpJxBDFEHGN^J0yU
LNDNPJ z"G2UpO0o\qKFGNO0oEDF\srND&O0o\srNJW\CBJWUIBo\2usG2EH{2n-D"B!Eo\srNDOIGNO S|oEJxB!n-o
LNDMG2\J S<U2Gp^FG2r2GdusGIB!EyU>GNOIG"S<EausG2n-J0DFUIBo@n}{2\q^DFE^FG2UNo
LND&DO0JWn-JWU2G2UpO0o\sG"S<EausG2n-J0DFUIBo\q^oU>n-DFUNo\srNDMUdusGIB!EoUNDF\
LNJ"DOUN~n-DFEoGN^"BaGNOrNDG"S<EausG2n-J0DFUIBo\DF\uqD`2a2DFNo}Wn-DFUNoEoZJ S|aGNO"`2a2D
"rNJ0KJWrNJWn-o\O0o\
G"S<EausG2n-J0DFUIBo\}n}{2\}rNJW\uqDFEH\o\pW\J0DFU2rNoOWGrNJW\uqDFEH\J0yNUrNDaUG"S<EausG2n-J0DFUIBoOWGrNJW\CB!G2UN^JWG
n-DFrNJWG&rND\a\udGNB Eo UDC\ GNO^DFUIB!Eo2JWrNDrNDO^O0a\CBDFE*uqoEOWG$^on uqoUNDFUIBDrNDn}{ JWn}G&rNJW\uqDFEH\J0yU
WEDF\uqD"B!G2U2rNo>DO<an@ EHGNOIn@!UNJWn-o@\ v
w U$OWG2\JxBDFEHGN^J0oUNDF\usG2EDF\o&^aG2U2rNo&DO UN~n-DFEoMGN^"BaGNO rNDG"S<EausG2n-J0DFUIBo\DF\DO0DKCGro}xdF
aUNJWn-o\^on-o-n}{ JWn-oMZudGEDC\rDG"S<EausG2n-J0DFUIBo\^a[<G9\DusG2EHGN^J0yU@DFUIB!EDZDO0O0o\`2a2DFrNDIuqoE
rND" Gz o@rNDO<an@ EHGNOIrNDMrNJW\CB!G2UN^JWGp^
!"
$#&%'#
)+*,.-0/12432457684598432457:;=<4>8@?A245BC-08@1>D!E$3:&59DGF=DHG84>DG3843
IJLKMJON!PQ!RSUTWVQXKYQGZXJ4PQXS4J4S
a Z bdcPQeN!KYcfSUTWJ"bCPgh7J4KYQGTjiONclk J4V9J4SUcLTjimZXJLKMJON!PQ!RSUTWVQXKYQGZXJ4PQXS4J4S
!"
$#&%'(
+*, -/. 02143(5 68791:7*; <:7=-/>02<:?@791
!"
$#&%('*)
+-, .0/21432/25 6-798:<;28
=?>"@ABCAD4BCEGF"H(IJK4FMLONPERQS@AUTVXWMDNPTADGYPZH\[C]_^_`a*]_^_b4a9FCV HcAINd@!LOAeBCEfbfAI2HghC[
i A.K. Jain & R.C. Dubes: “Algorithms for Clustering Data”. Prentice Hall, 1988.
i M.A. Ismael & M.S. Kamel: “Multidimensional Data Clustering Utilizing Hybrid Search
Strategies”. Pattern Recognition 22, 1989, pgs. 75-89.
=?E"@!FMjCEJIlk!Dl@NPTRFMDGYPERQnm*INXFMLONPERQS@AeDNXLOJMVXFMBCAfgpofqrts"u9hC[
i Adenso Díaz (coordinador), Fred Glover, Hassan M. Ghaziri, J.L. González, Manuel Laguna,
Pablo Moscato, Fan T. Tseng: “Optimización Heurística y Redes Neuronales”. Madrid: Editorial
Paraninfo, 1996.
=?>"@ABCAD4BCEGF"H(IJK4FMLONPERQS@AeLOERBCNXFMQS@E&ERQnm*INXFMLONPERQS@AeDNXLOJMVXFMBCA([
i S.Z. Selim & K. Alsultan: “A Simulated Annealing for the Clustering Problem”. Pattern
Recognition 24, 1991, pgs. 1003-1008.
i R.W. Klein & R.C. Dubes: “Experiments in Projection and Clustering by Simulated
Annealing”. Pattern Recognition 22, 1989, pgs. 213-220.
!"
$#&%('*)