Какой самый быстрый способ расчета положения центров кластеров, константных вогнутым многоугольником

У меня есть распределение взвешенных оценок 2D-поз (позиция + ориентация), которые являются образцами неизвестного PDF позы системы. Все оценки и основополагающая реальная позиция ограничены вогнутым многоугольником.

введите описание изображения здесь

На рисунке показано примерное распределение. Пурпурно окрашенные круги — это оценки, линия радиуса — это предполагаемое направление. Веса указываются диаметром кружков. Красная точка — это взвешенное среднее значение, желтая окружность указывает на отклонения и направление, но не имеет значения для следующей проблемы:

Из всех оценок я хочу вывести наиболее вероятное положение системы.

До сих пор я оценивал следующие подходы:

  1. Используя оценку с наибольшим весом: Дает плохие результаты, так как одна оценка с большим весом превосходит несколько совпадающих оценок с немного меньшими весами.
  2. Средневзвешенное значение: Не применимо, поскольку среднее значение может находиться вне многоугольника, как на рисунке (красная точка с желтым кружком).
  3. Средневзвешенная: Работает, но игнорирует потенциальные кластеры. Например. на изображении ниже видны два кластера, один из которых более вероятен, чем другой.

Кроме того, я изучил K-Means и K-Medoids. Для K-средних я не знаю наиболее эффективного способа привязать центры к многоугольнику. K-Medoids, кажется, работает, но имеет низкую производительность (O (n ^ 2)), что важно, так как у меня большое количество оценок (вопреки объяснительной картине)

  • Каков будет идеальный алгоритм для решения такого рода проблем?
  • Какую сложность можно достичь?
  • Существуют ли в C ++ легкодоступные алгоритмы, которые решают эту проблему, или их можно легко адаптировать для ее решения?

1

Решение

k-means также может дать оценку за пределами ваших полигонов.
Такие ограничения выходят за пределы варианта использования кластеризации. Но ничто не мешает вам разработать метод для корректировки оценок впоследствии.

Для невыпуклых данных стоит попробовать DBSCAN. Вы даже можете легко включить линию обзора в Обобщенный DBSCAN. Но я не уверен, что кластеризация поможет для вашей общей цели.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector