Существует ли особый тип многомерной регрессии для многопараметрических прогнозов? - PullRequest
4 голосов
/ 15 марта 2012

Я пытаюсь использовать многомерную регрессию для игры в баскетбол.В частности, мне нужно, основываясь на X, Y и расстоянии от цели, предсказать высоту, рыскание и силу пушки.Я думал об использовании многомерной регрессии с несколькими переменными для каждого выходного параметра.Есть ли лучший способ сделать это?

Кроме того, я должен использовать решение напрямую для лучшего соответствия, или использовать градиентный спуск?

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Ответ ЭльКамины верный, но следует отметить, что он идентичен выполнению k независимых регрессий по методу наименьших квадратов.То есть то же самое, что делать отдельную линейную регрессию от X до высоты тона, от X до рыскания и от X до силы.Это означает, что вы не используете корреляции между выходными переменными.Это может подойти для вашего приложения, но одна альтернатива, которая использует преимущества корреляций в выходных данных, - это уменьшенная регрессия ранга ( реализация Matlab здесь ), или в некоторой степени связанная, вы можете явно некоррелировать y, проецируя ее наего основные компоненты (см. PCA , также называемый в данном случае PCA отбеливание , поскольку вы не уменьшаете размерность).

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

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

1 голос
/ 15 марта 2012

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

n - количество выборок, m - количество входных переменных и k - количество выходных переменных.

X be the input data (n,m)
Y be the target data (n,k)
A be the coefficients you want to estimate (m,k)

XA = Y
X'XA=X'Y
A = inverse(X'X)X'Y

X' - это транспонирование X.

Как видите, как только вы найдете обратное значение X'X, вы можете вычислить коэффициенты для любого числа выходных переменных с помощью пары умножений матрицы.

Используйте любые простые математические инструменты для решения этой проблемы (MATLAB / R / Python ..).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...