Tengo una lista de objetos opacos. Sólo soy capaz de calcular la distancia entre ellos (no es cierto, sólo la creación de las condiciones para el problema):Cómo agrupar objetos (sin coordenadas)
class Thing {
public double DistanceTo(Thing other);
}
me gustaría agrupar estos objetos. Me gustaría controlar el número de racimos y me gustaría que los objetos "Cerrar" para estar en el mismo grupo:
List<Cluster> cluster(int numClusters, List<Thing> things);
Puede alguien sugerir (y enlace a ;-)) algunos algoritmos de agrupamiento (el más simple, ¡mejor!) o bibliotecas que pueden ayudarme?
Aclaración La mayoría de los algoritmos de agrupación requieren que los objetos se distribuyan en algún espacio N-dimensional. Este espacio se usa para encontrar "centroides" de clusters. En mi caso, no sé qué es N, ni sé cómo extraer un sistema de coordenadas de los objetos. Todo lo que sé es qué tan separados están 2 objetos. Me gustaría encontrar un buen algoritmo de agrupamiento que use solo esa información.
Imagine que se está agrupando según el "olor" de un objeto. No sabes cómo poner "olores" en un avión 2D, pero sí sabes si dos olores son similares o no.
Excelente información, muchas gracias. –