INTRODUCCION
La búsqueda de grupos en un conjunto de datos no es una tarea nueva. Uno de los libros seminales a este respecto fue publicado por primera vez en 1990, Finding groups in data: An introduction to cluster analysis1. Lo que en ese entonces se conoce en inglés como cluster analysis se traduce al español como análisis de conglomerados. Comúnmente se podía encontrar estos métodos en trabajos relacionados a estadística multivariante 2. Hoy, con el surgimiento de la ciencia de datos y del big data 3, el análisis de conglomerados se conoce como clasificación no supervisada o aprendizaje no supervisado, llevando este nombre debido a que el investigador no conoce apriori, la clase o grupo al que pertenecen las observaciones del conjunto de datos que analiza.
La investigación teórica y aplicada que usa algoritmos de clasificación no supervisada sigue vibrante. Por ejemplo, existen trabajos en diferentes áreas como clasificación de imágenes 4, analítica de deportes 5, análisis de lenguaje 6 y ciencias sociales 7 en esta línea de investigación. Cada uno usa diferentes métodos con un mismo propósito: encontrar grupos en los datos analizados. Dos de los algoritmos clásicos con los que se ha abordado este problema son k-medias y k-medoides. Ambos tienen como entrada el conjunto de datos y el número de conglomerados, como salida una partición del conjunto. K-medias permite usar únicamente variables cuantitativas y kmedoides permite usar variables cuantitativas y cualitativas. Una extensión de este ´ultimo es el algoritmo CLARA 1.
CLARA es conocida por ser una alternativa robusta para clasificación no supervisada para conjuntos de datos grandes. Por un lado, se considera robusta por usar el algoritmo k-medoides para obtener los representantes de los grupos. Por otro lado, un conjunto de datos es considerado grande en función de la complejidad computacional así como del poder de cómputo. Por ejemplo, en 1990 se entendía como un conjunto de datos grande cuando se tenía más de 100 observaciones 1.
Hoy se considera grande un problema con varios miles de observaciones. En particular, el software R permite hasta 65536 observaciones cuando usa el algoritmo k-medoides tradicional; más allá de ese umbral el problema debe ser abordado con el algoritmo CLARA 8. En el contexto Big Data, CLARA es un algoritmo que encaja adecuadamente. Es capaz de procesar conjuntos de datos de millones de observaciones en pocos segundos 9. Sin embargo, una limitante es la métrica utilizada para el cálculo de las disimilaridades (diferencia o distancia). Actualmente las opciones son la distancia euclideana y la de manhattan. Esto limita el uso de este potente algoritmo para la clasificación de datos mixtos, esto es, datos de tipo nominal, ordinal y binario (a) simétricos.
El algoritmo CLARA realiza múltiples muestras del conjunto de datos original, aplica k-medoides a cada muestra, encuentra los medoides y luego devuelve su mejor agrupamiento como salida.
Este trabajo presenta el algoritmo CLARABD que extiende al algoritmo tradicional posibilitando la clasificación de observaciones con tipos de datos mixtos y ha sido implementado en el lenguaje R 10. Específicamente, esta propuesta se diferencia del algoritmo CLARA tradicional en que la entrada para el cálculo de los medoides de cada muestra puede realizarse mediante una matriz de distancias o disimilaridad con las métricas euclídea, manhattan y gower. Siendo esta última la métrica de disimilaridad la que permite clasificar observaciones de tipo mixto.
Marco Teórico
Es común encontrar definiciones de clustering en la literatura de análisis multivariante, machine learning y reconocimiento de patrones. Se cita a continuación tres definiciones:
Todo se relaciona con la agrupación o segmentación de una colección de objetos en subconjuntos o clúster, de modo que aquellos dentro de cada clúster están más estrechamente relacionados entre sí que los objetos asignados a diferentes clúster. 11
El clustering se refiere a un conjunto muy amplio de técnicas para encontrar subgrupos, o clústeres, en un conjunto de datos. Cuando se agrupan las observaciones de un conjunto de datos, se busca dividirlas en grupos distintos para que las observaciones dentro de cada grupo sean bastante similares entre sí, mientras que las observaciones en diferentes grupos son bastante diferentes entre sí. 12
El análisis cluster, que es el ejemplo más conocido de aprendizaje no supervisado, es una herramienta muy popular para analizar datos multivariados no estructurados. Dentro de la comunidad de minería de datos, el análisis de clúster también se conoce como segmentación de datos, y dentro de la comunidad de aprendizaje automático también se conoce como descubrimiento de clases. La metodología consiste en varios algoritmos, cada uno de los cuales busca organizar un conjunto de datos determinado en subgrupos homogéneos, o clúster. 13
Sin embargo, es menos común encontrar un marco unificador para el problema de clasificación. En este sentido, 14 presenta un marco que permite esta conexión. Su propuesta se denomina Modelo Estructural de Cubrimientos (MEC) y ha motivado trabajos posteriores como 15 y 16. A continuación se revisa brevemente los ítems más relevantes de su teoría.
Definicion 1 (Estructura-Cubrimiento).
Una estructura-cubrimiento es una tupla con los siguientes elementos: (Ω, ℜ, δ, Q, π, f), donde:
Ω es un conjunto no vacío de objetos Ω = {o1, o2, . . . , on}.
ℜ es un conjunto ℜ = {x1, x2,. . ., xr} de variables llamadas Rasgos descriptivos, en función de los cuales se pueden describir los objetos en Ω. Cada rasgo descriptivo xi tiene un Dominio de definición Mi. Cada rasgo xi tiene un dominio Di.
δ es una relación funcional δ : Ω → (D1 × D2 × . . . × Dr) llamada Relación de Descripción que a cada objeto le asigna una descripción en términos de los rasgos en ℜ.
Q Es un conjunto Q = {C1, C2,. . ., Ck}, de etiquetas correspondientes a conjuntos llamados Clases o Categorías, en los cuales se agrupan los elementos de Ω.
π es una relación funcional π : (Ω × Q) → (0, 1) llamada Relacion de Pertenencia o Función de Pertenencia que a cada pareja, (objeto, clase), le asocia un grado de pertenencia.
f es una relación funcional llamada Función de Analogía entre Patrones. Es una función de comparación entre patrones que puede ser de semejanza o diferencia.
La estructura-cubrimiento permite formalizar los diferentes problemas de clasificación que el investigador puede enfrentar. En cada tipo de problema se recibe como datos iniciales algunos elementos de una estructura-cubrimiento, y se requiere encontrar los elementos faltantes. Si el problema es supervisado, se conoce la familia de clases y algunos elementos de pertenencia. Esto es, se tiene Ω, ℜ, δ, Q, π (π se conoce parcialmente), pero no se dispone de π ni f. Si, por el contrario, el problema es no-supervisado, entonces, no se conoce más que los objetos y sus descripciones. Es decir, se tiene Ω, ℜ, δ, pero no Q, π ni f.
El único elemento que está siempre ausente en todo problema de clasificación y que se convierte en el objetivo del método, es determinar es la función de comparación entre patrones. La selección de la función de comparación es la decisión más importante en el proceso de solución de un problema. En esa selección influyen la experiencia del modelador y las recomendaciones del experto.
Es adecuado mencionar también algunos tipos de cubrimiento:
Disjunto: Todas las clases son disjuntas.
Solapado: Algunas clases se intersectan.
Total: Todos los objetos pertenecen a a alguna clase.
Parcial: No todos los objetos pertenecen a alguna clase.
Note que la función de comparación (semejanza o diferencia) puede considerarse como la piedra angular del MEC. En este sentido, existen diferentes formas de comparar objetos (también llamados patrones).
Definición 2 (Función de Comparación).
Sean A y B dos objetos en el espacio E,
A= (a1, a2,. . ., ar)
B= (b1, b2,. . ., br)
entonces f(A, B) es una función de comparación de objetos tal que, f : E × E → Γ.
Donde Γ es un conjunto totalmente ordenado
A partir de la definición 2, se derivan dos tipos de funciones de comparación: de semejanza y diferencia. Una función de semejanza, donde el conjunto de salida es (0, 1), mide el grado de acuerdo, coincidencia o relación, entre dos objetos, a partir del valor de cada uno de sus atributos. Una función de diferencia, donde el conjunto de llegada es (0, ∞), mide el concepto opuesto, es decir, el grado de desacuerdo o incompatibilidad entre dos objetos.
En la propuesta del algoritmo CLARABD de este trabajo, se usan funciones de distancia. Particularmente, las distancias Euclideana, Manhattan y Gower:
Euclideana: es la distancia más usada y conocida, su fórmula de cálculo es:
Manhattan: es usada generalmente en espacios discretos (posiblemente infinitos), su fórmula de cálculo es:
Gower: usada cuando se dispone de tipos de datos mixtos (cualitativos y cuantitativos). Su forma de cálculo es:
donde s(A, B) es el coeficiente de similaridad de Gower:
y p 1 es el número de variables cuantitativas continuas, p 2 es el número de variables binarias, p 3 es el número de variables cualitativas (no binarias), r es el número de coincidencias (1, 1) en las variables binarias, d es el número de coincidencias (0, 0) en las variables binarias, α es el número de coincidencias en las variables cualitativas (no binarias) y G h es el rango (o recorrido) de la h-esima variable cuantitativa 17.
Teniendo en cuenta estos elementos, se puede definir un algoritmo de clasificación.
Definición 3 (Algoritmo de clasificación).
Un Algoritmo de Clasificación, A, recibe como entrada un cubrimiento parcial y lo transforma en un cubrimiento total.
A((Ω, ℜ, δ, Q1, π1, f)) = (Ω, ℜ, δ, Q2, π2 f)
Note que en el cubrimiento final pueden aparecer modificados tanto el conjunto de clases como la relación de pertenencia. Además, en todo proceso de clasificación se debe tener en cuenta su principio fundamental: objetos semejantes pertenecen a la misma clase; objetos diferentes pertenecen a clases distintas 14.
A partir del principio, es claro que lo deseable es que la semejanza dentro del grupo sea lo más alta posible. Es decir, los grupos resultantes de un algo- ritmo de clasificación deberían tener mayor semejanza interior que exterior. La varianza, que clásicamente es usada en estadística, recoge la noción de semejanza interior. Es decir, se desea obtener grupos con la menor varianza posible.
Otro elemento importante al momento de comparar objetos, es considerar el caso en el que los objetos pertenezcan a un espacio diferente de ℝn. Por ejemplo, si se tiene los objetos O1 = (dulce, 27, sábado, grande) y O2 = (salado, 25, jueves, mediano), no es posible usar la distancia euclideana porque los espacios contienen valores categóricos.
Note que la distancia de Gower si podría abordar el problema, pero hay que tener en cuenta ciertos elementos. A continuación se usa este ejemplo para ilustrar elementos de la definición 1. En este caso, los objetos O1 y O2 tienen a sabor, edad, día y tamaño como rasgos descriptivos. Se sabe que cada rasgo descriptivo tiene su propio dominio, en este caso serían
Dom(sabor) = {dulce, salado, agrio, ácido}
Dom(edad) = (0, 120) enteros
Dom(día) = {lunes, martes, miércoles, jueves, viernes, sábado, domingo}
Dom(tamaño) = {pequeño, mediano, grande}
Si bien la distancia eculideana no puede ser usada en este caso, una forma general de abordar este problema es notar que los objetos O1 y O2 están en el mismo espacio. Se puede proceder a compararlos en cada rasgo usando funciones auxiliares.
En este ejemplo se pueden definir cuatro funciones auxiliares, una para cada rasgo: g1(dulce, salado), g2(27, 25), g3(sábado, jueves) y g4(grande, mediano). Si todas las funciones gi(x, y), i = 1, 2, 3, 4 son de diferencia, entonces se tiene diferencias parciales respecto a cada rasgo descriptivo entre los objetos. Ahora, para obtener una medida de diferencia global, se deben combinar de alguna manera las diferencias parciales. Específicamente, se puede usar la función de distancia sintáctica.
Definición 4 (Distancia y semejanza sintáctica).
Sean A = (a1, a2, . . . , ar) y B = (b1, b2, . . . , br) dos objetos y gi(x, y), i = 1, . . . , r, funciones auxiliares, la distancia sintáctica se define como
En el mismo contexto, la semejanza sintáctica se define como
donde
pondera la relevancia de cada rasgo.
La distancia sintáctica permite la comparación de objetos en cualquier espacio de representación e incluso ponderando la relevancia de cada rasgo con el requisito de que las funciones auxiliares est´en bien definidas. Note que la distancia de Gower ya permite trabajar con datos mixtos, pero clara- mente la aproximación al problema usando funciones auxiliares y distancias sintácticas es todavía más general.
MATERIALES Y MÉTODOS
Como se puede apreciar, el MEC ofrece un marco general para abordar el problema de clasificación. El algoritmo CLARABD de este trabajo es una extensión del algoritmo CLARA. Su desarrollo se muestra en esta sección y para ello se necesita presentar dos algoritmos que son su insumo: K-medias y K-medoides.
K-medias
Por primera vez desarrollado por 18, el algoritmo k-medias es quizá el Algoritmo de clasificación no jerárquica más utilizado en toda la literatura. Sea en textos de contenido teórico como 19,20 o textos aplicados como 9,21, siempre esta presente una sección dedicada al algoritmo k-medias. A continuación se presenta el algoritmo.
El algoritmo recibe como entrada a un conjunto de objetos en el espacio ℝn y k (número de grupos a formar). El resultado una partición del espacio de objetos, tal que, optimiza la varianza global.
Calcular la Matriz Global de Distancias.
Seleccionar, los k objetos más alejados, como atractores iniciales.
Calcular y almacenar la distancia entre cada objeto y cada uno de los k atractores.
Particionar el espacio en grupos, asignando cada objeto al grupo del atractor más cercano. 5. Calcular, para cada grupo definido, su centroide.
Considerar los centroides recién calculados como nuevos puntos atractores.
Regresar al paso (3).
Terminar cuando el conjunto de centroides sea idéntico que el de la iteración anterior.
K-medoides
Cabe señalar el algoritmo k-medoides es un método de clasificación no supervisado. Un lector familiarizado con el algoritmo k-medias encontrará grandes similitudes. Siguiendo a 1, se presenta a continuación el algoritmo.
Seleccionar una función de comparación entre objetos. Por ejemplo, si se trata de variables cualitativas se suele usar la distancia euclideana, en este trabajo se usa la distancia de Gower.
Calcular la Matriz Global de semejanza/diferencia, esto es, la matriz de distancias.
Seleccionar, los k patrones más alejados, como atractores iniciales.
Calcular y almacenar la semejanza/diferencia entre cada patrón y cada uno de los k objetos atractores
Particionar el espacio en grupos, asignando cada patron al grupo del atractor más cercano
Calcular, para cada grupo definido, su medoide
Considerar los medoides reci´en calculados como nuevos patrones atractores.
Regresar al paso (4)
Terminar cuando el conjunto de medoides sea idéntico que el de la iteracion anterior.
La última partición obtenida, (idéntica a la de la iteración anterior) es la respuesta final del algoritmo. Con el algoritmo k-medoides se tiene un mecanismo para agrupar (por particionamiento) objetos en cualquier espacio de representación. Por el hecho de calcular medoides en lugar de centroides, el algoritmo k-medoides converge más rápido a la única solución global posible en ese espacio de representación y con ese conjunto de objetos.
CLARA
El algoritmo CLARA nace ante la necesidad de superar las barreras de memoria y tiempo de cómputo del algoritmo k-medoides (también conocido como Partitioning Around Medoids PAM) y está claramente explicado en el capítulo 3 de 1.
El método consiste, en términos generales, de dos pasos. Primero, se obtiene una muestra de objetos de los cuales se generan k grupos usando el algoritmo k-medoides. Es decir, se tienen k objetos representativos (medoides) de cada grupo. Segundo, cada objeto que no pertenece a la muestra es asignado al objeto más cercano de los k representativos. Esto resulta en una partición de todo el conjunto de objetos.
En el segundo paso se calcula la distancia promedio entre cada objeto de todos los datos y su objeto representativo. Después de realizar este proceso varias veces (el valor por defecto suele ser 5), se escoge la partición para la cual se tiene la distancia promedio más baja. En términos más específicos, los pasos del algoritmo CLARA son 22:
Dividir aleatoriamente los conjuntos de datos en múltiples subconjuntos con tamaño fijo.
Calcular el algoritmo PAM en cada subconjunto y elegir los k objetos representativos correspondientes (medoides). Asignar cada observacion del conjunto de datos completo al medoide más cercano.
Calcular la media (o la suma) de las diferencias de las observaciones con su medoide más cercano. Esto se usa como una medida de la bondad de la agrupación.
Retenga el subconjunto de datos para el que la media (o suma) es mínima.
CLARABD
CLARABD es un algoritmo que tiene dos objetivos. En primer lugar, extiende el algoritmo CLARA tal que pueda usarse la distancia de Gower para obtener la agrupación final. Es decir, permite usar datos mixtos (datos de tipo nominal, ordinal y binarios (a)simétricos). K-medoides también puede usarse con datos mixtos. Sin embargo, en el programa R existen limitaciones en su cálculo. Actualmente existe un límite estricto, el número de objetos debe ser menor o igual a 65536. Cuando el número objetos supera este límite, se sugiere usar el algoritmo CLARA. En este sentido, el segundo punto en el que CLARABD extiende a k-medoides en R es porque permite realizar agrupaciones más allá de 65536 objetos.
Específicamente, el punto 2 del algoritmo CLARA es adaptado en CLA- RABD. Este paso del algoritmo en CLARABD sería:
Con la opción de elegir la distancia de Gower además de la euclídea y manhattan, se calcula el algoritmo PAM en cada subconjunto y se eligen los k objetos representativos correspondientes (medoides). Asignar cada observación del conjunto de datos completo al medoide más cercano.
Es decir, todas las disimilaridades requeridas por el algoritmo pueden ser calculadas con la distancia de Gower. El código del algoritmo CLARABD ha sido plasmado en la función claraBD y puede descargarse de https://github.com/vmoprojs.
RESULTADOS
Simulación
Para evaluar los resultados de CLARABD, se ha configurado el siguiente escenario de simulación. Se crearon 4 grupos de tamaño 100, un total de 400 objetos. Cada uno está compuesto de dos atributos, una variable cuantitativa y una nominal.
La variable cuantitativa fue construida generando números aleatorios que siguen una distribución normal con distintas medias para cada grupo y varianza constante. La variable categórica fue construida mediante la generación de números aleatorios con distribución binomial con probabilidad 0,5. El código para reproducir los resultados de la simulación se encuentra en el apéndice A.
La Figura 1 muestra el ratio within/ between para evaluar la consistencia respecto al número de grupos. Efectivamente, se observa que el ratio disminuye a medida que aumenta el número de grupos, lo que muestra consistencia en la agrupacion. También se muestran los valores para k-medoides como referencia.
Se puede apreciar el ratio dentro (within) y entre (between) la suma de cuadrados tiene una caída significativa en 4 grupos en CLARABD. K-medoides, en contraste, decrece más lentamente. Es posible que, al usar muestras de los datos originales, CLARABD tiene más probabilidad de capturar los cambios en estructura de la agrupación a medida que aumenta el número de grupos.
Aplicación
A continuación se aplica el algoritmo CLARABD a un conjunto de datos de crédito de un banco alemán. Estos datos se obtuvieron del Repositorio de Aprendizaje Automático de la Universidad de California 23. El conjunto de datos, que contiene atributos y resultados sobre 1000 solicitudes de préstamo, fue proporcionado en 1994 por el Profesor Dr. Hans Hofmann del Instituto de Estadística y Econometría de la Universidad de Hamburgo. Ha servido como un importante conjunto de datos de prueba para varios algoritmos de puntuación de crédito.
Una descripción más detallada de los datos puede encontrarse en el repositorio así como en la figura 5. Cuenta con 21 en total (incluyendo el identificador de cliente), variables cuantitativas (duración del crédito, monto, edad, entre otros) y cualitativas (historial de crédito, destino del crédito, si es extranjero, entre otras).
Los datos contienen una variable de incumplimiento de crédito y, como un ejercicio de validación, se asume esta variable como determinada por las demás variables del conjunto de datos. Esto permite calcular una matriz de confusión usando CLARABD y k-medoides.
La Tabla 1 muestra los porcentajes respecto al total de la matriz de con fusión. Su objetivo es mostrar que los porcentajes son parecidos en la clasificación. Los valores sin paréntesis son los resultados de CLARABD y en paréntesis están los resultados de k-medodides. El apéndice B. contiene el código que reproduce los resultados de la Tabla 1.
Otra forma de comparar los resultados de los algoritmos es a través de los representantes de los grupos y cuan separados se encuentran. Los medoides que resultan de CLARABD son los objetos 10 y 843, PAM tiene por medoides a 892 y 261.
La Tabla 2 muestra estos resultados y se puede apreciar que en algunas variables coinciden y en otras no. Por ejemplo, en la variable ahorro se tiene exactamente el mismo resultado, mientras que en la variable monto la distancia es amplia entre los medoides. En general, existen diferencias en 12 de las 20 variables en ambos casos.
Finalmente, la Figura 2 muestra un gráfico biplot de las variables numéricas. Este gráfico utiliza las dos componentes más relevantes como resultado de aplicar un análisis de componentes principales sobre las variables numéricas. Ambas componentes representan el 44 % del total de la varianza de los datos y se muestran las etiquetas de la partición encontrada por los algoritmos CLARABD y PAM. Se puede apreciar que los patrones de los conglomerados son similares.

Figura 2 Biplot de variables numéricas etiquetadas por las agrupaciones de dos grupos resultantes. En el panel izquierdo presenta el algoritmo CLARBD, en el lado derecho se presenta el algoritmo PAM
CONCLUSIONES
Se ha logrado extender el algoritmo CLARA para datos mixtos. Para esto se usa la distancia de gower dentro del algoritmo CLARA tradicional. Los resultados de este proceso se han plasmado desde una perspectiva de simulación para evaluar la consistencia en las configuración de las agrupaciones finales así como en la aplicación a datos reales. Ambos enfoques comparan los resultados con k-medoides dado que este algoritmo permite usar la distancia de gower.
Tanto el proceso de simulación como la aplicación a datos reales muestran que CLARABD es consistente con PAM, las agrupaciones son similares desde distintos enfoques. En la simulación la consistencia se muestra a través del ratio dentro/entre (within/between). La aplicación usa tres elementos para mostrar la consistencia entre algoritmos.
En primer lugar, se presenta la matriz de confusión asumiendo la variable de incumplimiento como objetivo. Luego se muestran las coincidencias que existen entre los representantes (medoides) de los grupos obtenidos. Y, finalmente, se muestra un gráfico biplot donde los patrones lucen muy parecidos. Todas estas aproximaciones son evidencia de la coherencia del algoritmo propuesto: CLARABD.
Existen puntos específicos de CLARABD que pueden ser mejorados. Por ejemplo, por ahora, tanto la implementación de CLARA en R como la propuesta de CLARABD usa muestreo aleatorio simple para obtener las muestras del conjunto de objetos inicial. El diseño muestral podría ocasionar cambios radicales en las agrupaciones finales y responder de mejor manera a un problema específico. Por ejemplo, si se podría plantear un muestreo estratificado que recoja de mejor manera la probabilidad de selección y el peso que tiene cada objeto.
CLARABD es funcional y puede trabajar con más allá del umbral actualmente permitido por R (65536 objetos). No obstante, el tiempo de cómputo aún es un problema.
Tanto k-medoides como CLARA tienen su código fuente programado en el lenguaje C y R usa las funciones ejecutadas en C. Esta es una práctica común en R cuando se trata de procesos intensivos en cómputo.
Un trabajo derivado del presente podría implementar en C las rutinas más exigentes. En particular, la asignación de las observaciones no muestreadas a los medoides más cercanos es exigente computacionalmente