склеарн с указанием количества кластеров - PullRequest
0 голосов
/ 28 июня 2018

Для алгоритмов кластеризации в sklearn, есть ли способ указать, сколько кластеров вы хотите, чтобы алгоритм нашел (вместо того, чтобы алгоритм нашел свое количество кластеров)? Исходя из моих введенных данных, я надеюсь на 2 кластера вместо 3, которые он выводит для меня.

Если это поможет, я использую алгоритм MeanShift (но мой вопрос относится ко всем из них). Кроме того, большинство уроков, кажется, используют make_blobs, но я использую read_csv от pandas вместо того, чтобы загружать мои данные, если это что-то меняет.

Это начальная часть моего кода:

df = pd.read_csv(filename, header = 0)
original_headers = list(df.columns.values)
df = df._get_numeric_data()
data = df.values
ms = MeanShift()
ms.fit(data)
labels = ms.labels_
cluster_centers = ms.cluster_centers_
n_clusters_ = len(np.unique(labels))
print("Number of estimated clusters:", n_clusters_)

1 Ответ

0 голосов
/ 11 июля 2018

Как говорили некоторые пользователи выше, невозможно установить желаемое количество кластеров в алгоритме MeanShift.

Когда мы говорим о кластеризации, есть много моделей, которые можно использовать в зависимости от вашей проблемы. Модели на основе плотности, такие как MeanShift и DBSCAN, пытаются найти области с более высокой плотностью, чем остальная часть набора данных. Таким образом, количество кластеров будет определяться самими данными.

С другой стороны, например, методы, основанные на центроидах, такие как K-Means, начинают свои итерации, основываясь на количестве центроидов, переданных в качестве параметра.

Следующая ссылка показывает множество алгоритмов кластеризации sklearn. Попробуйте выяснить, какой из них лучше всего подходит для вашей проблемы.

http://scikit -learn.org / стабильный / auto_examples / кластер / plot_cluster_comparison.html

Ссылки:

https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68

https://en.wikipedia.org/wiki/Cluster_analysis

...