Привет! Мне нужно кластеризовать точки, значения которых меньше или равны 0,1. Мой вариант использования выглядит следующим образом.
0 1649.500000
1 0.864556
2 0.944651
3 0.922754
4 0.829045
5 0.838665
6 1.323263
7 1.397340
8 1.560655
.. .......
27 1.315072
28 1.593657
29 1.222322
... .......
... .......
2890 0.151328
2891 0.149963
2892 0.149285
2893 0.146318
2894 0.147668
2895 0.141159
Здесь мне нужно сгруппировать нижеприведенные пункты. Я дал данные, как показано ниже в dbscan
X = X.reshape(-1,1)
db = DBSCAN(eps=0.1,min_samples=3,metric='manhattan',n_jobs=-1).fit(X)
labels = db.labels_
Теперь, когда я печатаю точки, которые соответствуют точкам, как показано ниже
for i in range(n_clusters_):
print("Cluster {0} include {1}".format(i,list(np.where(labels==i))))
Мой вывод выглядит следующим образом:
Cluster 0 include [array([ 1, 2, 3, ..., 2893, 2894, 2895])]
Если вы видите вышеупомянутые данные, которые я предоставил, 1-я позиция имеет 0,8 ... и 2895-я позиция имеет 0,141 ... Но как их можно сгруппировать, когда я дал eps = 0,1 и метрику = "Манхэттен" (что принимает абсолютную разницу). Что мне здесь не хватает, следует ли мне использовать какое-то другое расстояние. Неужели я неправильно понимаю eps?