我有一个数据集,用于计算(近似)非线性函数的参数。
原始数据点及时展开,目前我的求解器能够计算在给定时间段内为数据项建模的最佳参数集。当我合并更大的数据集时,函数逼近的准确性提高了。然而,与此同时,我不希望数据项太旧而不能在很大程度上影响函数逼近。我现在计划使用属于预定义窗口的数据项。此预定义窗口将随着时间的推移而移动,包含新数据项并丢弃旧数据项。但是,为了包含或排除数据元素,我总是必须从修改后的数据集开始,这个过程非常耗时,不适合实时的操作。
我想解决的问题是如何将来自附加数据项的学习结合到近似函数中,而不必遍历整个原始数据集。最初的想法是通过子集中的总数据项与所有子集中的总数据项的比率来对从每个数据子集学习的函数参数进行加权。任何人都可以想到更好的方法吗?对于任何可能的解决方案的暗示将不胜感激。
答案 0 :(得分:0)
借用一些时间序列技术,一种简单(启发式)方法是使用模型参数的exponential smoothing来计算新学习参数的加权平均值(基于最近的数据)和旧参数(值)必须使用某种交叉验证/回测试来调整权重。如果作为时间函数的新数据中的信噪比没有显着变化,这通常可以很好地工作。
另一种方法是根据早期数据为您的模型参数强加“先验” - 最简单的方法之一(不需要完全贝叶斯学习)是为您的损失函数添加二次惩罚惩罚偏离旧参数值(使用交叉验证/回测试调整惩罚系数)应该注意确保在构造惩罚时考虑旧模型参数的方差 - 协方差矩阵。这大致相当于基于较旧的模型参数强加高斯先验。