我已经有了一个我以前没见过的非线性回归算法的想法:
我们使用梯度下降将简单的参数函数(例如径向基函数)拟合到数据中。我们从中找到残差,然后将函数拟合到此,重复此过程以减少误差并构建叠加函数的集合。 (我假设可以说服搜索找到最适合最多点的函数)
如上所述,这种算法会过度拟合。我认为有几种方法可以克服这个问题,但最明显的可能是限制适合的功能数量。
我认为它应该比神经网络或rbf网络更快,因为它不必一次调整这么多参数。没有可供选择的网络架构。它应该比决策树算法(如M5)更准确,因为它可以更紧密地遵循连续曲线,而不必选择要拆分的属性。
以前是否曾尝试过?如果是这样,为什么不成功?
答案 0 :(得分:1)
通过修正步骤1..n
中拟合函数的参数,同时拟合函数n+1
的参数,您很可能会发现WORSE拟合(例如由均方误差定义)通过同时拟合所有n+1
函数。因此,与将所有n+1
函数同时“浮动”同时相比,您可能需要更多函数来实现与提案相同的均方误差。
为了防止过度拟合,您应该使用Cross Validation之类的内容,例如一旦未在拟合中使用的测试样本的均方误差停止下降,就停止添加函数。
答案 1 :(得分:1)
这绝对是http://metaoptimize.com/qa的问题 - 机器学习社区的stackoverflow克隆。
除此之外,您描述的程序基本上是一种进行正规化的方法。例如,考虑您的程序如何与使用数百万个RBF和L1或L2回归项进行比较。显然,它仅在回归术语的工作方式上有所不同。你基本上做的是仅对非零权重的数量进行正则化,而不是总和或平方和。
这种正规化方法并不新鲜,人们一直试图长期有效地做到这一点,但问题在于它不是凸起的,甚至是连续的。这意味着优化通常是NP-Hard。你的技术基本上是这个问题的近似算法,虽然它可能适用于某个例子,你将无法保证最优性(找到适合的“最佳”N rbf)并且它对你选择的起点非常敏感。正是出于这些原因,你通常不会在顶级会议和期刊上看到研究论文,而是更有效地尝试L1正则化,因为事实证明这一点与我们在保持凸性时可能得到的一样接近。 / p>
答案 2 :(得分:1)
基于残差迭代拟合函数的想法并不新鲜。例如,请参阅AdaBoost。