如今,大数据技术的发展和进步开辟了收集和传输大量的数据更有效的新方式。这场革命促进了实时算法和方法的研究和发展。传统上,机器学习算法并不是专为实时处理而设计的。事实上,数据的科学竞赛(如Netflix,Kaggle)由于算法昂贵,并且不切实际的使用,并且计算量很大,这往往屡受诟病。这是植根于感知的准确性是更重要的,该算法的速度作为原始设置的数据挖掘是离线的,往往是分批计算。大数据的出现使其开始有了改变,随着越来越多的算法涌现,对一个可扩展的方式重新考虑。大多数时间的可扩展性,单独不妥协的算法的准确性,作为计算其本质上是相同的。大数据分析的实时处理带来了一个更根本的变化,因为它限制了可以在这种情况下可以采用的算法的计算复杂度。一个实时的流媒体算法应该满足以下条件:它应该在一次处理一个例子中,最多检查它一次,使用有限的内存量,在有限的时间内工作,并随时在任何时候进行预测。
为了满足这些要求,流媒体算法设计成为了一种时尚,一个学习的模型不断更新,以反映来自流媒体传入的例子。在处理一个传入的例子后,无论数据稀疏,能够产生预测的算法是必需的。对于流数据的前沿方法有来自许多不同的方向,在网上学习,随机线性代数,云计算的分布式的优化方法,甚至直到多类噪音和杂散数据的存在分类问题。一般来说,这些方法并不是特别有效,但预测的某些部分可能基于预先计算的模型。事实上,离线在线周期是一个传统机器学习和实时分析之间的良好折衷,因为它推动其通过该方法的在线部分,并作为新的观测进来细化模型离线的方法。
增量学习算法代表发适合于实时分析所提出的要求的一种方法。从本质上说,这些算法有一个离线的核心模型,可以回顾历史数据,进行新的观察,并逐步进入模型。为了保持模型的快速增量更新,这只是部分更新基于概念漂移是在流的检测模型,然后在预定的时间开始全面更新脱机。这使系统对新的观察迅速作出反应,这是速度和准确性之间的妥协。要注意,这取决于所采用的算法的类型,有可能更新到充分建模,在这种情况下,没有必要保持一个离线部分的算法。事实上,这使得增量算法的在线学习算法的主要标准是它是否能够更新模型,并产生实时的预测。
实时分析已被应用在各种各样的场景,包括社交媒体,金融和各种科学学科被采用。然而,可以处理大量的实时数据的工具仍然稀缺,主要是内部解决方案。
分类:
Hoeffding选项树是一个渐进的决策树算法。Hoeffding树利用的事实是一个小样本往往是足够来选择最佳的分裂特性。
朴素贝叶斯是一个非常简单的和计算上轻型分类器,该模型的更新和新的样本的分类可以实时进行。朴素贝叶斯是增量学习的一个很好的例子,没有一个离线组件,因为这种模式能够产生没有预测的历史数据,从而提高新的观测能力。
集群:
StreamKM++计算该数据流的一小的加权样品,它使用的k均值++算法作为随机播种技术来选择所述第一簇的值。
D-流使用在线组件,每个输入数据记录映射到网格和离线组件计算网格密度和集群基于密度的网格。该算法采用密度衰减技术来捕获数据流的动态变化。
回归:
LDA增量更新时,新样本到达LDA的最小二乘解。这种方法的优点在于,它执行其导致批次LDA的确切最小二乘解模型的完全更新。
SAIRT是二元回归树的增量版本。面对未知的参与力度,如逐步和突然漂移功能,在功能,噪音和虚拟漂移的某些区域变化的数据流时,它适应的感应模式。它监视节点和忘记实施例的从选定区域,存储在关联到树的叶子本地窗口,其余的是有用的。