我正在尝试使用多元回归来打篮球。具体来说,我需要根据 X、Y 和与目标的距离来预测俯仰、偏航和大炮强度。我正在考虑对每个输出参数使用具有多个变量的多元回归。有一个更好的方法吗?
另外,我应该直接使用求解来获得最佳拟合,还是使用梯度下降?
我正在尝试使用多元回归来打篮球。具体来说,我需要根据 X、Y 和与目标的距离来预测俯仰、偏航和大炮强度。我正在考虑对每个输出参数使用具有多个变量的多元回归。有一个更好的方法吗?
另外,我应该直接使用求解来获得最佳拟合,还是使用梯度下降?
ElKamina 的回答是正确的,但需要注意的一点是,它与进行 k 个独立的普通最小二乘回归相同。也就是说,与从 X 到俯仰、从 X 到偏航、从 X 到强度进行单独的线性回归相同。这意味着,您没有利用输出变量之间的相关性。这对您的应用程序来说可能很好,但是利用输出中的相关性的一种替代方法是降低秩回归(此处是 matlab 实现),或者有些相关,您可以通过将 y 投影到其主成分上来显式取消相关性(参见PCA,在这种情况下也称为PCA 白化,因为您没有降低维度)。
我强烈推荐 Izenman 的教科书“现代多元统计技术:回归、分类和流形学习”的第 6 章,以对这些技术进行相当高级的概述。如果你在大学里,它可以通过你的图书馆在线获得。
如果这些替代方案表现不佳,则有许多复杂的非线性回归方法具有多个输出版本(尽管大多数软件包没有多元修改),例如支持向量回归、高斯过程回归、决策树回归、甚至神经网络。
多元回归相当于对输入变量集的协方差进行逆运算。由于矩阵求逆有很多解决方案(如果维数不是很高。千应该没问题),你应该直接去寻找最佳拟合而不是梯度下降。
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..)。