Scikit-Learn DBSCAN создает кластер с двумя сильно изолированными островками - PullRequest
0 голосов
/ 23 февраля 2020

В этом случае: картинка стоит тысячи слов ..

Hello Purple Cluster!

enter image description here

Как это произошло? Первый - описать данные и настройки для DBSCAN:

  • 100 точек данных
  • Использование нестандартного расстояния метри c для генерации предварительно вычисленная матрица расстояний
  • Пользовательское расстояние metri c просто: Учитывается только r0 (x-distance)

Все, кроме того, что мошенническая пара фиолетовых точек выглядит именно так, как нужно. Как это фиолетовое скопление прыгнуло через Желтую стену и заявило, что пара мошенников в верхнем левом углу?

Обновление Было подтверждено, что точно три кластера. Т.е. это не ошибка при выборе трех цветов для обозначения четырех кластеров. Проверка была произведена непосредственно из прогнозируемых результатов dbscan (не моей гипотезы):

Вот что:

NumClusters is 3 counts are (array([-1,  0,  1]), array([ 8, 67, 25]))

Другое обновление Чтобы уточнить: 2 фиолетовые точки добавляются к крайне правому кластеру (также фиолетовым цветом). Они не a четвертый кластер. Итак, вопрос в том, почему эти точки добавляются в самый дальний кластер, а не в зеленые и желтые поблизости?

1 Ответ

0 голосов
/ 23 февраля 2020

Это интересно. Я добавил номер кластера , и мы видим, что для фиолетовый это -1 .

enter image description here

Это означает БЕЗ КЛАСТЕРА . Так вот как пара в верхнем левом углу может «разделять» один и тот же «кластер» с теми, что находятся в крайнем правом: они на самом деле не разделяют cluster , а только идентификатор, который sckit-learn использует для NO кластер.

...