Вывод меток кластерных алгоритмов упорядочен в определенном порядке?(Python, Scikit учиться) - PullRequest
0 голосов
/ 07 июня 2019

Я использую кластеризацию Shift-means (https://scikit -learn.org / stable / modules / clustering.html # mean-shift ), в которой метки кластеров получены из этого источника: https://scikit -learn.org / стабильный / модули / полученные / sklearn.neighbors.NearestNeighbors.html

Однако не ясно, как генерируются метки кластеров (0,1, ...). Похоже, что метка 0 - это кластер с большим количеством элементов. Это общее правило?

Как работают остальные алгоритмы? это в "случайном" смысле? или алгоритмы определения больших кластеров для кластера 0?

Спасибо!

PS: заказать этикетки по этому правилу легко, мой вопрос более теоретический.

1 Ответ

0 голосов
/ 09 июня 2019

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

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

Теперь количество (размер кластера) имеет интересный эффект: если предположить, что ваши данные упорядочены случайным образом (а не, например, упорядочены каким-либо синтетическим процессом генерации данных), тогда первый элемент с большей вероятностью будет принадлежать «наибольшему» кластер, поэтому этот кластер, скорее всего, будет первым, даже со «случайным» порядком.

Теперь в среднем сдвиге Склеарна (который, по моему мнению, содержит ошибку в конечном правиле назначения), авторы решили сортировать по «интенсивности», по-видимому, но я не помню ни одного такого правила в оригинальных статьях. https://github.com/scikit-learn/scikit-learn/blob/7813f7efb/sklearn/cluster/mean_shift_.py#L222

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...