我知道我可以找到执行(X'X)^-1 * X'y
的多项式回归系数(其中X'
是转置,有关详细信息,请参阅Wikipedia。)
这是一种查找系数的方法;现在,(据我所知)至少有一种其他方式,即通过使用梯度下降最小化成本函数。前一种方法似乎最容易实现(我在C ++中做过,我在Matlab中有后者)。
我想知道的是其中一种方法优于另一种方法的优势。
在特定数据集上,只有极少数点,我发现使用(X'X)^-1 * X'y
找不到令人满意的解决方案,但是梯度下降工作正常,我可以得到一个有意义的估计函数。
那么矩阵分辨率超过梯度下降有什么问题?如何测试回归结果,让用户隐藏所有细节?
答案 0 :(得分:2)
两种方法都是等价的。由于较低的存储和避免矩阵逆计算,迭代方法在计算上更有效。该方法胜过封闭形式(矩阵方程)方法especially when X
is huge and sparse。
确保X
的行号大于X
的列号,以避免出现欠定问题。还要检查X'X
的条件编号,看看问题是否是不适定的。如果是这种情况,您可以在封闭形式((X'X + lambda * I)^(-1) * X'y
)中添加一个小的正则化因子,其中lambda
是一个小值,I
是单位矩阵。