在线算法(online algorithm)是什么意思?

  统计/机器学习 开放问题    浏览次数:13683        分享
4

经常看到在线算法(online algorithm)这个词,比如说“XXX的另一个优点是它是在线算法”,但是我理解得比较模糊,在线是不是就是计算比较快的意思?有准确一点、具体一点的定义吗?

 

张球球   2017-03-31 13:22



   2个回答 
6

离线算法是需要输入全部数据之后再开始训练模型。比如说一开始你有1万行数据,你用这个数据训练出了一个模型,当你又有了1千行新数据后,你需要把这1千行和原来的1万行数据合并起来,再重新训练模型。

在线算法则不需要重新训练,在线算法可以按批次接收数据、改进模型。比如说一开始你有1万行数据,你用这个数据训练出了一个模型,当你又有了1百行新数据,你不需要把这些新数据与原数据合并,你可以只利用这100行数据对原先的模型进行调整(不是从头重新训练),再来1百行数据,又可以利用新的数据对模型进行调整。

在线算法的一个巨大优势是节约空间。当数据量特别大的时候,我们可以一部分一部分的训练,而不是直接在整个数据集上训练。


SofaSofa数据科学社区DS面试题库 DS面经

黄前志   2017-04-06 12:32

比如说蓄水池算法就是online algorithm - 小嘿   2017-04-12 11:31
4

从机器学习的角度来说,offline(或者说batch)learning就是用所有的数据进行训练模型,当有新训练数据进来的,需要把新数据和旧数据合并起来,重新训练模型,原来的模型就没有用了。


online learning就是当新训练数据进来,我们不需要放弃原来的模型,也不需要把新数据和旧数据合并成训练集,我们可以在原来的模型的基础之上,用新的数据集对老模型进行一些修改更新。


总体来说,online learning更省事,更符合有流数据需求的场景。

附上一张网图,供大家欣赏。


SofaSofa数据科学社区DS面试题库 DS面经

派大星   2017-10-13 11:00



  相关讨论

few-shot learning是什么意思?

如何学习机器学习?有没有好的经验。

除了线性回归,逻辑回归,线性模型(linear model)包括哪些模型和算法?

机器学习提到的MVP是什么意思?

机器学习中的投票算法是指什么?

如何理解VC dimension?

数据泄漏(data leakage)是什么意思?

seq2seq模型有什么应用场景?

hyperparameter与parameter的区别?

如何理解PAC Learning?

  随便看看

matplotlib一个画板上多个图叠加,如何决定图层上下?

python或者numpy求数值的中位数、四分位数

凸函数、凸集分别是什么意思?

xgboost怎么调参?

修正R方(adjusted R square)是什么?