Constelaciones, imagenes y clientes. Encontrando sentido con aprendizaje de maquina.
El majestuoso espectáculo de una noche estrellada es casi siempre abrumador y provoca una sensación de pequeñez ante la inmensidad del cosmos y sus misterios. Tal vez por eso la humanidad originalmente buscó en las estrellas la explicación del origen del universo, de los fenómenos de la naturaleza y aún de los eventos que ocurren en nuestras vidas.

En 2014 un grupo de investigadores de la Universidad de Stanford decidió que sería interesante ver cómo serían las constelaciones si para agruparlas se utilizaban algunos métodos totalmente objetivos, independientes de las tradiciones y de la imaginación humana. Para ello aplicaron técnicas de aprendizaje automático (ML por sus siglas en inglés), la rama de la Inteligencia Artificial (IA) que estudia las técnicas para descubrir patrones y relaciones en los datos que sirven para hacer predicciones o tomar decisiones (Ver el artículo académico aquí).
De un catálogo astronómico con todas las estrellas visibles a simple vista obtuvieron las coordenadas galácticas y la magnitud (medida de luminosidad) de cada estrella y aplicaron cinco algoritmos de agrupamiento de ML en dos escenarios: las estrellas con magnitud menor a 2.6 (101 estrellas en 41 constelaciones) y las estrellas con magnitud menor a 4.6 (973 estrellas en 86 constelaciones). Después compararon los resultados con las constelaciones reales y calcularon un indicador del grado de coincidencia, conocido como índice Rand ajustado, que va de -1 (ninguna relación) a 1 (total coincidencia). Si el índice es cero entonces las coincidencias se deben al azar.
Como se observa en la tabla, cuatro de los cinco algoritmos generaron resultados que tienen una relación positiva con las constelaciones reales. Esto sucedió tanto en el escenario de las 41 constelaciones más brillantes, como en el de las 86 que incluyen las estrellas menos brillantes.
Índice Rand Ajustado alcanzado por algoritmos de agrupamiento para la formación de constelaciones
De esta forma, partiendo sólo de la ubicación y luminosidad, estos algoritmos llegaron a una distribución de constelaciones semejante a la que se ha generado históricamente observando el cielo a simple vista o con telescopio.
Los algoritmos de agrupamiento forman parte de las técnicas de aprendizaje no
supervisado de ML. Dichas técnicas encuentran patrones en los atributos de una
serie de ejemplos que permiten agruparlos en conjuntos de características
semejantes, evaluar el grado de similitud entre dos ejemplos y obtener
conocimientos de esa información (lee nuestro artículo sobre el aprendizaje
de máquina).
Ejemplo del resultado de un algoritmo de agrupamiento
Al igual que sucede con todas las técnicas de ML, la gran ventaja de los algoritmos de agrupamiento es que son tan efectivos para analizar un número pequeño de atributos de unos cuantos ejemplos (ubicación y luminosidad de 973 estrellas) como los son para analizar millones de ejemplos con miles de atributos, aunque en ese caso ya no podemos hacer una gráfica para observar los resultados.
Por ello el agrupamiento es utilizado en aplicaciones tan diversas como la segmentación de la población en grupos de características demográficas y hábitos de compra similares para formular estrategias de mercadotecnia, la agrupación de inmuebles parecidos en renta para mejorar la experiencia del usuario de portales de arrendamiento, o la segmentación de imágenes en bloques para facilitar la identificación de objetos en ellas.

Los cinco algoritmos que utilizaron los investigadores de Stanford para generar constelaciones son clásicos del agrupamiento con ML, por lo que a continuación los explicamos brevemente:
K-medias. Este
algoritmo agrupa los puntos con base en la distancia al centro de grupo (centroide)
más cercano. Al principio se escogen k centroides. En cada iteración los puntos
son asignados al grupo del centroide más cercano, al terminar se recalculan los
centroides con el promedio de cada uno de los atributos de los puntos de su
grupo (ubicación y luminosidad en el caso de las estrellas). El proceso se
repite hasta que la agrupación en una iteración no cambia con respecto a la
anterior.
Agrupamiento por k-medias. Fuente: http://shabal.in/visuals/kmeans/6.html
Agrupamiento jerárquico.
Algoritmo que en cada iteración va formando grupos más grandes. En la primera
iteración se identifica el par de puntos más cercanos entre sí, estos puntos se
agrupan y se calcula su centroide. En la siguiente iteración se vuelve a
encontrar el par de puntos más cercanos, pero considerando los centroides de
los nuevos grupos en lugar de los puntos individuales. El proceso continúa
hasta que todos los puntos quedan en un solo grupo. Este algoritmo produce una
jerarquía de agrupamiento muy útil para encontrar relaciones complejas.

Agrupamiento espectral. Algoritmo con raíces en la teoría de grafos (conjuntos de vértices conectados por líneas). Funciona igual que el agrupamiento jerárquico, pero en lugar de utilizar los puntos más cercanos como criterio para formar grupos, utiliza los puntos que al unirse incrementan más las conexiones del grafo, utilizando para ello un índice llamado modularidad. El supuesto de cierta conexión original entre los puntos puede haber influido para que no tuviera resultados favorables en el caso de las estrellas y constelaciones, donde las conexiones son imaginarias.
Propagación de afinidad. Este algoritmo evalúa al mismo tiempo la idoneidad de todos los puntos para ser puntos centrales de los demás. Esto se hace calculando los valores de cuatro matrices o tablas, que tienen como columnas y renglones los puntos a agrupar:
- Matriz de “similitud”, cada celda s(i,k) contiene la distancia entre los puntos i y k.
- Matriz de “responsabilidad”, cada celda r(i,k) contiene la idoneidad del punto k para ser punto central del punto i, comparado con la alternativa de otros puntos.
- Matriz de “disponibilidad”, cada celda d(i,k) contiene la idoneidad del punto k para ser punto central del punto i, tomando en cuenta que tan idóneo es para otros puntos.
- Matriz “criterio”, cada celda c(j,k) es la suma de las celdas r(j,k) y d(i,k). Las celdas con valores más altos son elegidas puntos centrales y los renglones que tienen un punto central común se asignan a un mismo grupo.

Agrupación de clientes con propagación de afinidad
- Puntos centrales, los puntos vecinos a una distancia menor al radio de referencia igualan o superan el mínimo.
- Puntos frontera, están en el círculo de un punto central, pero sus vecinos a una distancia menor al radio de referencia no llegan al mínimo.
- Puntos de ruido, no son vecinos de un punto central y sus vecinos a una distancia menor al radio de referencia no llegan al mínimo.

Los algoritmos de agrupamiento del aprendizaje de máquina, con una combinación de creatividad humana en la creación de algoritmos y el poder de las computadoras, ayudan a encontrar sentido en información que muchas veces parece confusa, lo que sirve de base para procesos de decisión más complejos.
Para más información y ejemplos del agrupamiento con ML:
¿Te gustó este artículo? Lee otros artículos de nuestro blog IF Inteligencia Futura aquí.