Алгоритм кластерного анализа для идентификации линейных кластеров на карте - PullRequest
0 голосов
/ 10 ноября 2018

У меня достаточно большой набор (r, g, b) -цветных точек данных с (x, y) -координатами, который выглядит следующим образом:

enter image description here

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

В соответствии с дорожной картой scikit-learn Мне следовало бы использовать либо модели смешанных сдвигов, либо гауссову смесь, но я хотел бы знать, есть ли какое-либо доступное решение, которое также будет учитывать, что соседние точки, которые общие схожие цвета чаще принадлежат к одному кластеру.

У меня есть доступ к графическому процессору, поэтому приветствуется любое решение, даже если оно основано на глубоком обучении.


Я попытался ответить @ mcdowella , и он работал на удивление хорошо. Я проверил его по многомерной версии этих точек (которые были сгенерированы с помощью T-SNE) с помощью реализации HDBSCAN Robust Single Linkage, и она аппроксимировала многие линии без какой-либо настройки параметров.

enter image description here

1 Ответ

0 голосов
/ 10 ноября 2018

Я бы попробовал https://en.wikipedia.org/wiki/Single-linkage_clustering - он имеет тенденцию следовать по линиям, что иногда даже является недостатком для людей, которые хотят красивые компактные скругленные скопления и получают разбрызгивающие спагетти (хорошая картинка на P7 https://www.stat.cmu.edu/~cshalizi/350/lectures/08/lecture-08.pdf).

...