IBM Streams时间序列数据分析

Posted IBM大数据技术团队

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IBM Streams时间序列数据分析相关的知识,希望对你有一定的参考价值。

时间序列数据是一个物体或多个物体随着时间不断产生的数值序列。比如:从智能电表中获得月电度使用量;每日股票的价格和交易量;ECG(心电图);地震仪,网络性能数据等等。时间序列数据一定基于时间顺序,这个顺序是所有时间分析算法的基础。IBM Streams时间序列工具包(TimeSeries Toolkit),可以用来预处理、分析和建模时间序列数据。


在IBM Streams里,时间序列数据有三种主要类型的处理方法:

  • 数据预处理:包括读取、修复、条件化数据。

  • 数据分析:包括分析时间序列数据的内在信息。比如:对时间序列数进行计算统计信息和关联,解析和转换.

  • 数据建模:包括时间序列模型的创建以及使用模型来预测或回归。


这个工具包还提供一系列函数来自动生成以测试和验证为用途的时间序列数。以下对该工具包的具体功能:


1. 分析模块具有以下Operator(对时间序列数据流进行连续运算)

  • AnomalyDetector异常检测

  • CrossCorrelate2交叉关联(滑动点乘或滑动内乘),用于测量两个时间序列的相似度

  • CrossCorrelateMulti用于模式识别,两个或多个时间序列。

  • DSPFilter2数字信号处理(DSP)的过滤操作算法执行对输入时间序列的数字滤波操作。数字滤波是一个普遍的技术使用,以提高或降低的时间序列的某些特性。它可用于长度不能计数的数据处理,例如,数据平滑化,趋势,增强,放大,和频率解析。

  • DSPFilterFinite同上,用于有限长度的数据处理。

  • DWT2离散小波变换

  • Distribution     四位分布图quartile distribution

  • FFT傅里叶变换

  • FunctionEvaluator对时间序列中每个值进行计算

  • Normalize计算均值和方差,零均值和单位方差

  • PSAX分段聚合近似Piecewise Aggregate Approximation

  • STDseasonal     trend decomposition 季节趋势分解


2. 分析模块具有以下函数(对单个时间序列值进行运算)

  • convolve,laggedConvolve卷积运算

  • crosscorrelate,laggedCrosscorrelate交叉关联

  • rms方根均值


3. 距离模块具有以下函数(对单个时间序列值进行运算)

  • dtw动态时间规整dynamic time warping (DTW)

  • dtw_itakura     Itakura Parallelogram DTW

  • dtw_sakoe_chiba     Sakoe-Chiba Band based DTW

  • lcss     longest common subsequence (LCSS)最长公共子序列

  • lpNorm     Lp范式


4. 数据生成模块具有以下函数Operator(自动生成时间序列数据流)

  • Generator正弦,三角,锯齿,或脉冲串


5. 数据生成模块具有以下函数

  • generate_pulsetrain_wave

  • generate_sawtooth_wave

  • generate_sine_wave

  • generate_square_wave

  • generate_triangular_wave


6. 建模模块具有以下函数Operator((对时间序列数据流进行连续运算)

  • ARIMA2自回归积分滑动平均模型

  • AutoForecaster2时间序列值自动预报

  • FMPFilter自适应褪色记忆多项式滤波器,用于跟踪、平滑、离群值、异常检测

  • GAMLearner广义可加模型

  • GAMScorer利用广义可加模型打分

  • GMM混合高斯模型,用于概率估计和离群值、异常值检测

  • HoltWinters2三次指数平滑法,用于长期预报

  • KMeansClusteringKMeans聚类分析

  • Kalman卡尔曼滤波器,用于跟踪、平滑和自适应时间序列数据。

  • LPC线性预测编码

  • RLSFilter递归最小二乘(RLS),预测

  • VAR2,Granger因果关系算法,用于近期预测、异常检测。


7. 预处理模块具有以下函数Operator((对时间序列数据流进行连续运算)

  • IncrementalInterpolate增量插补,计算遗漏值

  • ReSample重采样

  • TSWindowing窗函数,包括 Hamming, Hann, Blackman, Cosine, 和Triangle


Streams TimeSeries 工具包通过许多操作符进行了完善,能够建立预报、跟踪、回归和预测模型。在一些真实场景中,输入时间序列可能更改它的频率范围或者可能不断造成干扰,或者开始丢失数据。使用这些质量糟糕的数据来构建模型可能导致糟糕的性能。因此,在数据质量下降时,必须执行重新构建模型或暂停更新模型参数的过程。而在运行时这么做是一大挑战。


TimeSeries 工具包的建模操作符通过使用一个控制端口来接受特定的控制信号,促进了模型的再培训、暂停或恢复。一旦在输入数据中检测到异常或变更,就可以向建模操作符发送控制信号,让其更改其行为。但是,这个控制信号应与所监视的数据同步,否则会导致模型中异常数据泛滥。例如,控制信号的细微延迟可能导致对坏数据进行模型培训。在流环境中,控制这一延迟非常棘手,因为无法保证控制信号和数据在操作符之间的移动速度。


可以考虑预报某个区域的电力使用情况的示例。在模型构建周期中,必须忽略小电力故障,否则可能在预报期间产生失真的结果。小故障或超出范围的数据需要丢弃,控制端口特性可帮助实现此目的。Streams可以将控制信号的检测和提交与用于模型学习的数据进行同步。


以上是关于IBM Streams时间序列数据分析的主要内容,如果未能解决你的问题,请参考以下文章

IBM BigInsights (IBM Hadoop) 与 IBM Watson

Java 8 中的 Streams API 详解

Java 8 中的 Streams API 详解

Java 8 中的 Streams API 详解

Kafka Streams - 根据 Streams 数据发送不同的主题

Elasticsearch:Data streams