首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >联机(而不是批量处理)数据挖掘包

联机(而不是批量处理)数据挖掘包
EN

Stack Overflow用户
提问于 2012-03-10 20:02:55
回答 2查看 172关注 0票数 2

所谓“批量处理”,我指的是一个静态数据集--事实的(就像在CSV中一样)--一次性处理以提取知识。当“在线”时,它使用的是一个实时备份商店:事实在发生时被添加("X购买Y"),查询发生在这些实时数据上(“您会向正在查看y的人回复什么?”)。

我使用了“实时”一词,但我并不意味着结果必须在一个固定的时间内出现。(“编辑:将”实时“替换为”网上“)

我想到了一个使用实时数据的推荐引擎。然而,我遇到的所有在线资源(例如,SO问题)都使在实时处理和批量处理数据挖掘包之间没有区别。我不得不逐个搜索:

  • Carrot2,从Lucene/Solr和其他实时数据集中读取(在线)
  • 执行静态文件的计划执行(批量)
  • 在Hadoop上运行的Mahout (以及将来基于Pregel的Gi相图)(在线?)
  • 与Cassandra集成的商业软件包(在线?)

什么是在线数据挖掘包?

是否有一个原因,为什么文献不区分在线和批量处理包?还是所有实际的数据挖掘实际上都是批量操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-11 11:17:57

对于某些算法,有在线版本可用。例如,对于LOF,局部离群因子,有一个在线变体。我相信也有k-意思的在线变体(事实上,最初的MacQueen版本可以被看作是" online ",尽管大多数人通过重复它直到收敛而将它变成离线版本),但是关于k参数的问题,请参阅下面的内容。

然而,在线操作往往要付出很大的性能代价。直到每小时在快照显示上运行完整的算法而不是不断更新结果的时候才会更快。想想互联网搜索引擎吧。大多数大型搜索引擎仍然不允许“在线”查询,而是查询可能是一天或更早以前构建的最后一个索引。

另外,在线操作还需要大量的额外工作。计算距离矩阵很容易,通过添加和删除列来在线更新它要困难得多,并且同步所有依赖的结果。一般来说,大多数数据挖掘结果太复杂,无法执行。例如,计算数据流的平均值很容易。但是,“通常没有已知的解决方案来更新结果,而不重新运行昂贵的进程”。在其他情况下,您甚至需要更改算法参数。因此,在某一时刻,可能会形成一个新的集群。但是,K-表示并不意味着会出现新的簇。所以从本质上说,你不能只写一个在线版本的k-方法。这将是一个不同的算法,因为它需要动态地修改输入参数"k“。

因此,通常,算法要么是在线的,要么是离线的。而一个软件包将无法将离线算法转化为在线算法。

票数 2
EN

Stack Overflow用户

发布于 2015-10-13 14:22:46

在线数据挖掘算法意味着它们实时地计算结果,并且通常意味着算法是增量的。也就是说,每次看到一个新的训练实例时,模型都会被更新,并且不需要使用批处理算法进行定期的再训练。许多机器学习库,如Weka,提供了批处理算法的增量版本。还可以检查莫阿项目和火花流。尽管大多数“传统”ML算法在没有基础设施和计算优化的情况下无法在在线模式下工作,但文献确实对两者进行了区分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9649720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档