Сравнение наборов 2D-данных / диаграмм рассеяния

У меня есть 2000 наборов данных, каждый из которых содержит немногим более 1000 2D-переменных. Я хочу сгруппировать эти наборы данных в любую из 20-100 кластеров на основе сходства. Однако у меня возникли проблемы с поиском надежного метода сравнения наборов данных. Я испробовал несколько (довольно примитивных) подходов и провел множество исследований, но, похоже, не могу найти ничего, что подходило бы к тому, что мне нужно делать.

Я разместил ниже изображение трех наборов моих данных. нанесен. Данные ограничены 0-1 по оси y и находятся в пределах ~ 0-0. 10 по оси x (на практике, но теоретически может быть больше 0,10)

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

Зеленый и красный следует рассматривать как очень точные. разные, но все равно, они должны быть больше похожи, чем синий и красный.

http://img153.imageshack.us/img153/6730/screenshot20110204at004.png

Я попытался:

  • сравнить на основе общих превышений и отклонений
  • разбить переменные на области координат (например, (0-0,10, 0-0,10), (0,10-0,20, 0,10-0,20) .. . (0,9-1,0, 0,9-1. 0)) и сравнить сходство на основе общих точек в регионах
  • Я попытался измерить среднее евклидово расстояние до ближайших соседей среди наборов данных

Все это дало неверные результаты. Ближайший ответ, который я смог найти в своем исследовании, был « Соответствующие метрики сходства для нескольких наборов 2D-координат ». Однако приведенный там ответ предлагает сравнить среднее расстояние между ближайшими соседями от центроида, что, я не думаю, сработает для меня, поскольку направление так же важно, как и расстояние для моих целей.

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

6
задан Community 23 May 2017 в 10:32
поделиться