![enter image description here](https://i.stack.imgur.com/vOHzI.png)
Может кто-нибудь помочь мне найти хороший алгоритм кластеризации, который будет кластеризовать его в 3 кластера без определения количества кластеров.
У меня естьперепробовал много алгоритмов в своей базовой форме ... кажется, что ничего не работает должным образом.
clustering = AgglomerativeClustering().fit(temp)
так же, как я пробовал dbscan и kmeans тоже ... просто использовал рекомендации из sklean. я не мог получить ожидаемые результаты.
мой исходный набор данных представляет собой одномерный список чисел ... но порядок чисел имеет значение, поэтому сгенерировал двухмерный список, как показано ниже.
temp = []
for i in range(len(avgs)):
temp.append([avgs[i], i+1])
clustering = AgglomerativeClustering().fit(temp)
при составлении графика пилотирования я использовал симулятордиапазон как ось y
ax2.scatter(range(len(plots[i])), plots[i], c=np.random.rand(3,))
порядок данных имеет значение, так что это нужно кластеризовать в 3. и могут быть некоторые другие наборы данных, которые данные очень хороши, так что результат этой потребностибыть только одним кластером.
Ссылка на список, если кто-то хочет попробовать
, поэтому я попытался использовать обнаружение шагов и получил следующее изображение в соответствии с вашим ответом. но как я могу найти значения пиков ... если я получу максимальное значение, я могу получить один из них ... но как получить остальное ... второй максимум не является ответом, потому что один рядом сmax - это второе max
![enter image description here](https://i.stack.imgur.com/Cd8qx.png)