Определение значений eps и min_sample в Scikit DBSCAN

Я пытался реализовать DBSCAN с помощью scikit, и до сих пор не могу определить значения epsilon и min_sample, которые дадут мне значительное количество кластеров. Я попытался найти среднее значение в матрице расстояний и использовал значения по обе стороны от среднего, но не получил удовлетворительного количества кластеров:

Вход:

db=DBSCAN(eps=13.0,min_samples=100).fit(X)
labels = db.labels_

# Number of clusters in labels, ignoring noise if present.
n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)
print('Estimated number of clusters: %d' % n_clusters_)

вывод:

Estimated number of clusters: 1

Вход:

db=DBSCAN(eps=27.0,min_samples=100).fit(X)

Вывод:

Estimated number of clusters: 1

Также другая информация:

The average distance between any 2 points in the distance matrix is 16.8354
the min distance is 1.0
the max distance is 258.653

Также X, переданный в коде, является не матрицей расстояний, а матрицей векторов признаков. Скажите, пожалуйста, как мне определить эти параметры?


person Rakesh Sharma    schedule 31.10.2014    source источник
comment
Сколько у вас образцов?   -  person Phani    schedule 31.10.2014


Ответы (2)


Попробуйте изменить параметр min_samples на более низкое значение. Этот параметр влияет на минимальный размер каждого сформированного кластера. Возможно, все возможные кластеры, которые должны быть сформированы, имеют небольшой размер, и параметр, который вы используете сейчас, слишком велик для их формирования.

person Phani    schedule 31.10.2014

  1. Постройте график k-расстояний и найдите там колено. Как предлагается в статье DBSCAN. (Ваши min_samples могут быть слишком высокими - тогда у вас, вероятно, не будет изгиба в графе 100 расстояний.)

  2. Визуализируйте свои данные. Если вы не видите кластеры визуально, возможно, кластеров нет. DBSCAN нельзя принудительно создать произвольное количество кластеров. Если ваш набор данных является распределением Гаусса, он предполагается только одним кластером.

person Has QUIT--Anony-Mousse    schedule 31.10.2014