Creo que puedes hacer DBSCAN.
Según su descripción, sus datos son 2D, por lo que la distancia euclidiana está bien.
Los parámetros que ajusta son epsilon y minPts, que son el umbral de distancia para encontrar vecinos y el número mínimo de vecinos para dar cuenta de un clúster, respectivamente.
- Cómo numerar los clústeres en la agrupación jerárquica de documentos en Python
- ¿En qué se basa IBM Watson? ¿Es una alternativa interna de IBM a TensorFlow?
- ¿Qué consejo le darías a los estudiantes de doctorado que comienzan su doctorado en aprendizaje automático?
- ¿Cómo sabemos de antemano qué características funcionarán mejor para la clasificación?
- ¿Cuál es la relación entre K-means y PCA?
Creo que dado que los datos son tan escasos, la matriz de distancia no es una buena idea, puede usar una “lista ordenada vinculada” para representar las distancias, por lo tanto, la complejidad del tiempo para encontrar vecinos será mucho menor (de N a m para cada nodo donde N es el número de todos los puntos ym es el número de vecinos dentro de épsilon).
Por ejemplo, una lista vinculada ordenada se ve así:
1: (293: 0.003) -> (3323: 0.005) -> (235049: 0.008) …
2: (53453: 0.005) -> (676456: 0.006) -> (342342: 0.007) …
…
donde los enteros son índices de puntos y los flotadores son distancias.
El ruido es totalmente bueno, DBSCAN maneja bien el ruido.