algorithm - 多项式回归 - 两种算法之间的结果准确性

标签 algorithm machine-learning regression

<分区>

我知道我可以通过 (X'X)^-1 * X'y 找到多项式回归的系数(其中 X' 是转置,参见 Wikipedia了解详情)。

这是一种求系数的方法;现在,(据我所知)至少有另一种方法,即使用梯度下降最小化成本函数。前一种方法似乎最容易实现(我用 C++ 实现,后者在 Matlab 中实现)。

我想知道的是其中一种方法相对于另一种方法的优势。

在一个特定的数据集上,只有很少的点,我发现我无法使用 (X'X)^-1 * X'y 找到令人满意的解决方案,但梯度下降工作得很好我可以获得一个有意义的估计函数。

那么梯度下降的矩阵分辨率有什么问题呢?以及如何测试回归结果,对用户隐藏所有细节?

最佳答案

这两种方法是等价的。由于较低的存储空间和避免矩阵求逆计算,迭代方法的计算效率更高。该方法优于封闭形式(矩阵方程)方法especially when X is huge and sparse .

确保X 的行号大于X 的列号,以避免欠定问题。还要检查 X'X 的条件编号,看看问题是否不适定。如果是这种情况,您可以在封闭形式 ((X'X + lambda * I)^(-1) * X'y) 中添加一个小的正则化因子,其中 lambda 是一个小值,I 是单位矩阵。

关于algorithm - 多项式回归 - 两种算法之间的结果准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21235960/

相关文章:

database - 是否有任何算法可以创建不需要大量数据库(或与可公开访问的数据库一起使用)的播放列表?

machine-learning - 训练中神经网络权重溢出

c++ - 在机器学习中使用责任链模式

c++ - 偏最小二乘库

python - Python 中的稳健多元多项式回归

Python从两组点中获取变换矩阵

algorithm - 用于创建 Verilog 框图的程序

algorithm - 如何通过 lat long 进行高效的多搜索点

multithreading - 二项式系数

machine-learning - 简单感知器模型和 XOR