离线与在线学习中的模型选择

机器算法验证 机器学习 模型选择 在线算法
2022-03-20 04:14:11

最近我一直在尝试更多地了解在线学习(这绝对令人着迷!),而我无法很好地掌握的一个主题是如何考虑离线与在线环境中的模型选择。具体来说,假设我们基于一些固定数据集离线训练分类例如,我们通过交叉验证来估计它的性能特征,然后我们以这种方式选择最好的分类器。SD

这就是我一直在思考的问题:那么,我们如何着手将应用到在线环境中呢?我们可以假设离线找到的最好的也可以作为在线分类器表现良好吗?是否有意义,然后采用相同的分类器上的相同参数在在线设置中“操作”它,还是另一种方法更好?在这些情况下有什么注意事项?这里的主要结果是什么?等等。SSSSD

无论如何,现在已经有了,我想我正在寻找一些可以帮助我(希望还有其他人,他们一直在考虑这种事情!)的参考资料或资源,从仅以离线方式思考转变,并且随着阅读的进行,发展思维框架,以更连贯的方式思考模型选择问题和这些问题。

1个回答

显然,在流式上下文中,您不能将数据拆分为训练集和测试集以执行交叉验证。仅使用在初始训练集上计算的指标听起来更糟糕,因为您假设您的数据发生了变化,而您的模型将适应这些变化——这就是您首先使用在线学习模式的原因。

您可以做的是使用在时间序列中使用的那种交叉验证(参见Hyndman 和 Athanasopoulos,2018 年)。要评估时间序列模型的准确性,您可以使用顺序方法,其中模型在个观测值上进行训练,以预测“未来”时间点。这可以一次应用一个点,也可以分批应用,并重复该过程,直到您遍历所有数据(参见下图,取自Hyndman 和 Athanasopoulos,2018 年)。kk+1

最后,你以某种方式平均(通常是算术平均值,但你也可以使用指数平滑之类的东西)误差指标来获得整体准确度估计。

在此处输入图像描述

在在线场景中,这意味着您从时间点 1 开始并在时间点 2 上进行测试,然后在时间点 2 上重新训练,然后在时间点 3 上进行测试等。

请注意,这种交叉验证方法可以让您考虑模型性能的变化性质。显然,随着您的模型适应数据并且数据可能会发生变化,您需要定期监控错误指标:否则它与使用固定大小的训练和测试集没有太大区别。