【问题标题】:Continuous Regression in Machine Learning机器学习中的连续回归
【发布时间】:2018-05-17 10:23:21
【问题描述】:

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

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

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

【问题讨论】:

  • 不就是使用样本权重吗(可能很多libs都支持)?
  • 这不属于“不时从头开始重新计算我的模块的成本超出我的承受能力”类别吗?
  • 取决于你解决的什么模型你如何解决它以及你处理什么样的数据大小,很重要未提供信息。

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


【解决方案1】:

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

样本重量

在 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} 使用非线性回归 - 你会过拟合。

【讨论】:

    猜你喜欢
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 2015-02-09
    • 2019-08-01
    • 2019-04-17
    • 2021-11-15
    • 2020-07-04
    相关资源
    最近更新 更多