2009-02-25 12 views
6

Проблема с кривой для двумерных данных хорошо известна (LOWESS и т. Д.), Но с учетом набора точек 3D-данных, как мне соответствовать 3D-кривой (например, сплайсинг/регрессионный сплайн) к этим данным?Набор кривых 3D-данных

БОЛЬШЕ: Я пытаюсь найти кривую, подгоняя данные, предоставленные векторами X, Y, Z, которые не имеют никакого известного отношения. По сути, у меня есть облако 3D-точек, и вам нужно найти трехмерную линию тренда.

БОЛЬШЕ: Я прошу прощения за двусмысленность. Я попробовал несколько подходов (я все еще не пробовал модифицировать линейную подгонку), и случайный NN, похоже, лучше всего работает. I.e., я произвольно выбираю точку из облака точек, нахожу центроид ее соседей (в произвольной сфере), итерацию. Соединение центроидов с образованием гладкого сплайна оказывается трудным, но полученные центроиды проходимы.

Чтобы прояснить проблему, данные не являются временным рядом, и я ищу гладкий сплайн, который лучше всего описывает облако точек, если бы я проецировал этот 3D-сплайн на плоскость, образованную любыми 2 переменными, проецируемый сплайн (на 2D) будет плавным положением прогнозируемого облака точек (на 2D).

IMG: Я включил изображение. Красные точки представляют собой центроид, полученный из вышеупомянутого метода.

3D Point Cloud and Local Centroids http://img510.imageshack.us/img510/2495/40670529.jpg

+3

изображение отсутствует –

ответ

1

Вы можете попробовать добавки (то есть одной модели индекса) Klartag, поскольку GAM http://www-stat.stanford.edu/software/gam/index.html

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

1

Это зависит от того, что вы имеете в виду. Если у вас есть набор точек f (x, y) -> z, и вы хотите найти функцию, которая поражает их все, что вы можете просто сделать сплайн.

Если у вас есть известная функция, и вы хотите настроить параметры для минимизации ошибки RMS, просто рассмотрите составной объект x, ya (например, как сложный или 2-векторный) и используйте аналоговый 2d-случая на f (p) -> z.

Если вы можете быть более конкретным о том, чего вы пытаетесь достичь, я могу быть более конкретным с предложениями.

- MarkusQ

Поэтому, учитывая, отредактированная постановку задачи, я хотел бы предложить следующее:

  • Если это временная ряд (подразумевается использование вами термин «трендовый») Я d рассмотрим его как три параметрические функции (x (t), y (t), z (t)) и сделав 2d фитингом на каждом из них.
  • Альтернативно (но все же предполагая упорядоченную серию) вы можете найти линейную посадку (линию через сердце облака), а затем добавить к ней некоторую (возможно полярную) функцию, основанную на перпендикулярной проекции от точки на линию.
  • Если это не временные ряды (подразумеваемые фразами «нет известного отношения» и «облако точек»), вы должны определить, какую «кривую» вы хотите поместить в них. Вы хотите линию? Поверхность/многообразие? Вы хотите, чтобы она была функцией одной или двух переменных или не зависела от них (скажем, выпуклой оболочки). Нужно ли быть гладким, ограниченным по степени или ...?

Действительно, вопрос все еще слишком открытый.

2

А смежные вопросы здесь:

Simple multidimensional curve fitting

В общем, вы можете просматривать проблемы, как это из статистического обучения точки зрения.Другими словами, у вас есть набор базовых функций (например, сплайнов), параметризованных определенным образом, а затем вы используете методы наименьших квадратов или некоторые другие методы регрессии для нахождения оптимальных коэффициентов. Я случайно нравится Elements of Statistical Learning

0

Я бы попытался использовать эвристику изогнутой кривой. Например, сортируйте точки по порядку, который они посещают кривой заполнения пробега. Одним из решений вашей проблемы будет кривая сплайна через точки, взятые в этом порядке. Чтобы получить более короткую и плавную кривую (но большее расстояние RMS от точек до кривой), вы можете заставить сплайн пройти только каждую k-ю точку. Вы могли бы улучшить кривую, если после выбора каждой k-й точки вы искали более короткий гамильтоновский путь через них (например, проблема передвижного коммивояжера, но для открытых путей). Вы также можете отрегулировать сплайн-узлы для уменьшения RMS-расстояния. При расчете RMS-расстояния я использовал бы порядок кривой заполнения, чтобы указать, какая часть сплайна, вероятно, будет ближе всего к данной точке.

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

  • Нет связанных вопросов^_^