机器学习中的连续回归

时间:2017-12-04 01:07:21

标签: machine-learning regression linear-regression non-linear-regression

假设我们有一组输入(名为x1,x2,...,xn),它们给出了输出y。目标是从x1 ... xn的某些值中预测y,这些值似乎还没有。我很清楚,这个问题可以建模为机器学习领域的回归问题。

然而,让我们说数据不断涌现。我能够从x1 ... xn预测y。此外,我能够在事后检查该预测是否是一个好的预测。如果它是一个好的,一切都很好。另一方面,我想更新我的模型,以防预测与实际偏差很大。我可以看到的一种方法是将这些新数据插入我的训练集并再次训练回归算法。由此产生了两个问题。首先,它可能比我从头开始不时重新计算我的模块所花费的成本更高。其次,我的训练集可能已经有太多数据,因此新的数据可以忽略不计。但是,由于我的问题的性质,新的未来数据可能比旧的数据更重要。

似乎一个好的解决方案是计算一种与新数据相关的连续回归,而不是旧数据。我搜索过这种方法,但我没有发现任何相关的内容。也许我正在寻找错误的方向。有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您想更新的数据更重要,您必须使用权重。通常称为

  

sample_weight

在scikit-learn中的fit()函数中(如果使用此库)。

权重可以定义为1 /(从当前观察时间开始)。

现在关于第二个问题。如果重新计算需要很长时间,您可以削减观察结果并使用最新观察结果。使您的模型适合整个数据以及新数据+旧数据的某些部分,并检查您的权重变化多少。我想如果你真的在{x_i}和{y}之间存在依赖关系,那么你不需要整个数据集。

否则你可以再次使用重量。但是现在你将在模型中加权:

  

旧数据模型:w1 * x1 + w2 * x2 + ...

     

新数据的模型:~w1 * x1 + ~w2 * x2 + ...

     

常见模型:(w1 * a1_1 + ~w1 * a1_2)* x1 +(w2 * a2_1 + ~w2 * a2_2)* x2 + ...

这里a1_1,a2_1是“旧模型”的权重,a2_1,a2_2 - 新的,w1,w2 - 旧模型的系数,~w1,~w2 - 是新模型的权重。

参数{a}可以在第一个项目符号(手动)中估算,但您也可以创建另一个线性模型来估计它们。但我的建议是:不要对{a}使用非线性回归 - 你会过度拟合。