Создание кластеров для данных на основе близости точек данных в C # - PullRequest
0 голосов
/ 25 октября 2019

У меня есть набор точек данных, содержащихся в List<Point4D> allPoints, где каждый Point4D point представлен узлом, содержащим свое положение x, y, z в пространстве (point.X, point.Y, point.Z) и егозначение величины (point.W). Точки данных представляют отдельные точки нагрузки на объект, и, следовательно, существуют различные группы точек данных на объекте, в которых точки данных находятся в непосредственной близости и имеют сходные величины.

Я хочу иметь возможность определить, где находятся эти кластеры и какие точки данных они включают. Пользователь должен иметь возможность видеть кластеры и (в конечном итоге) сможет фильтровать их по размеру / количеству точек / величине величины напряжения и т. Д. (Сейчас это не моя главная задача).

Сейчас я просто хотел бы создать своего рода «пузырь» вокруг точек данных, включенных в каждый кластер, чтобы я мог отображать каждый кластер отдельно.

Я пытался реализовать K-means, но застрял, потому что мне нужно было знать, сколько кластеров было заранее (по крайней мере, это было требованием во всех реализациях, которые я нашел). Для моих целей я не буду знать, сколько кластеров или где они находятся заранее;эта информация варьируется в зависимости от текущего набора данных, который анализируется (данные импортируются из CSV-файла, загруженного пользователем).

Любые идеи будут с благодарностью!

1 Ответ

0 голосов
/ 26 октября 2019

Обычным способом является запуск k-средних несколько раз для разных k и выбор «лучшего» с помощью некоторой эвристики, такой как (глупый) метод локтя. Лучший выбор включает VRC, но должно быть совершенно ясно, что не существует универсально лучшего kz, и ваше приложение может быть примером, где вы, вероятно, захотите больший k, чем «лучший», найденный такими методами.

ТакжеСуществуют варианты, такие как x-means и g-means, которые пытаются «выучить k» во время кластеризации, в основном, пытаясь разделить кластеры, пока улучшается некоторая эвристика.

...