En datos unidimensionales, no utilice el análisis de conglomerados.
El análisis de conglomerados suele ser una técnica multivariante. O mejor dicho, para datos unidimensionales, que están completamente ordenados, hay técnicas mucho mejores. Usar k-means y técnicas similares aquí es un total desperdicio, a menos que se ponga el suficiente esfuerzo para optimizarlas realmente para el caso 1-d.
Por poner un ejemplo: para k-means es habitual utilizar k objetos aleatorios como semillas iniciales. Para datos unidimensionales, es bastante fácil hacerlo mejor simplemente utilizando los cuantiles apropiados (1/2k, 3/2k, 5/2k, etc.), después de ordenar los datos una vez y luego optimizar desde este punto de partida. Sin embargo, los datos en 2D no se pueden ordenar completamente. Y en una cuadrícula, es probable que haya celdas vacías.
Tampoco lo llamaría racimo. Lo llamaría intervalo . Lo que realmente quieres hacer es optimizar los bordes del intervalo. Si haces k-means, probará para cada objeto si debe ser movido a otro cluster. Eso no tiene sentido en 1D: sólo hay que comprobar los objetos en los bordes del intervalo. Obviamente, esto es mucho más rápido, ya que sólo hay ~2k objetos allí. Si no prefieren otros intervalos, los objetos más centrales tampoco lo harán.
Puede que quieras buscar técnicas como Optimización de Jenks Natural Breaks por ejemplo.
O puede hacer un estimación de la densidad del núcleo y buscar los mínimos locales de la densidad para dividir allí. ¡Lo bueno es que no es necesario especificar k para esto!
Ver esta respuesta para ver un ejemplo de cómo hacer esto en Python (los marcadores verdes son los modos de los clusters; los rojos, los puntos en los que se cortan los datos; el eje y es una probabilidad logarítmica de la densidad):
P.D. Por favor, utilice la función de búsqueda. Aquí hay algunas preguntas sobre la agrupación de datos en 1-d que se perdieron: