Quiero agrupar elementos en un array. La diferencia crucial con respecto a un algoritmo de clustering normal es que el orden de los elementos es significativo. Por ejemplo, si miramos una simple secuencia de números como esta:
1.1, 1.2, 1.0, 3.3, 3.3, 2.9, 1.0, 1.1, 3.0, 2.8, 3.2
Es obvio que hay dos clusters ahí (1,1, 1,2, 1,0, 1,0, 1,1) y (3,3, 3,3, 2,9, 3,0, 2,8, 3,2). Lo que quiero es encontrar grupos secuenciales de elementos similares
(1.1, 1.2, 1.0), (3.3, 3.3, 2.9), (1.0, 1.1), (3.0, 2.8, 3.2)
4 en este caso. Por supuesto, puedo ejecutar alguna variante de un algoritmo de agrupación normal y luego dividir los clusters según los índices de los elementos, pero probablemente haya una forma más sencilla de hacerlo.
¿Hay algún algoritmo que pueda utilizar para esto?