机器学习中的连续回归

Continuous Regression in Machine Learning

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

但是,假设数据源源不断。我能够根据 x1...xn 预测 y。此外,事后我可以检查该预测是否正确。如果它是好的,那么一切都很好。另一方面,我想更新我的模型以防预测与实际 y 偏差很大。我可以看到的一种方法是将这个新数据插入我的训练集并再次训练回归算法。由此产生了两个问题。首先,有时从头开始重新计算模块的成本可能超出我的承受能力。其次,我的训练集上可能已经有太多数据,以至于新的数据可以忽略不计。但是,由于我的问题的性质,新的数据可能比旧数据更重要。

似乎一个好的解决方案是计算一种连续回归,它与新数据的相关性比与旧数据的相关性更高。我已经搜索过这种方法,但没有找到任何相关的东西。也许我看错了方向。有人知道怎么做吗?

如果您想考虑较新的数据更重要,则必须使用权重。通常它被称为

sample_weight

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

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

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

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

model for old data: w1*x1 + w2*x2 + ...

model for new data: ~w1*x1 + ~w2*x2 + ...

common model: (w1*a1_1 + ~w1*a1_2)*x1 + (w2*a2_1 + ~w2*a2_2)*x2 + ...

这里 a1_1, a2_1 是 'old model', a2_1, a2_2 的权重 - 对于新的,w1, w2 - 旧的系数型号,~w1,~w2 - 新型号。

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