2017-02-07 2 views
1

На моем sql server базы данных У меня есть набор значений данных: «A». Он имеет около 6000 нечетных строк и 3 столбца в виде точек по оси x, оси y и оси z.Поиск соответствующего подмножества набора трехмерных точек

Я должен вывести подмножество «B» всего 100 точек, которые напоминают данные набора «A», наиболее близко удаляющие выбросы (например, если в трехмерном пространстве есть только 2 точки, их следует игнорировать но если есть кластер точек где-то, они должны быть представлены точкой или двумя, если применимо).

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

+0

Это не совсем понятно, что вы хотите здесь. Похоже, вы хотите сделать какой-то кластерный анализ, верно? –

+0

Точно. Мне нужен кластер точек наиболее близко к тому, что у меня уже есть –

+1

Я бы справился с этим в R, используя кластерный пакет, а не SQL Server. SQL предназначен для тяжелого подъема данных, а не для сложного интеллектуального анализа данных. –

ответ

1

Вам нужен алгоритм упрощения полилинии. Пожалуй, наиболее популярным является Douglas-Peucker algorithm

Цель алгоритма, дана кривая состоит из линейных сегментов , чтобы найти аналогичную кривую с меньшим количеством точек.

Это пока не ясно - что делать с выбросами - возможно, вам потребуется некоторое сглаживание или другую фильтрацию (потому что D_P алго пытается сохранить их)

+0

Я тоже искал это, но дело в том, что оно фактически сохранит все выбросы, а также удалит сосредоточенные облака там, где они очень важны. –

+0

So вы должны определить четкие критерии - какие точки являются выбросами, и что важно. Обратите внимание, что критерии D-P перпендикулярного расстояния могут использоваться для фильтрации. – MBo

+0

Я предлагаю попробовать две стадии обработки -1. фильтрующие выбросы, которые имеют слишком большое перпендикулярное расстояние 2. Упрощение D-P – MBo

Смежные вопросы