查看: 2591|回复: 5

将数据与 InfoSphere Streams Time Series Toolkit 中的控制信号同步

[复制链接]
论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
发表于 2014-2-12 20:24 | 显示全部楼层 |阅读模式
简介
[size=1.166em]InfoSphere Streams Time Series 工具包通过许多操作符进行了完善,能够建立预报、跟踪、回归和预测模型。在一些真实场景中,输入时间序列可能更改它的频率范围或者可能不断造成干扰,或者开始丢失数据。使用这些质量糟糕的数据来构建模型可能导致糟糕的性能。因此,在数据质量下降时,必须执行重新构建模型或暂停更新模型参数的过程。而在运行时这么做是一大挑战。
[size=1.166em]Time Series 工具包的建模操作符通过使用一个控制端口 来接受特定的控制信号,促进了模型的再培训、暂停或恢复。一旦在输入数据中检测到异常或变更,就可以向建模操作符发送控制信号,让其更改其行为。但是,这个控制信号应与所监视的数据同步,否则会导致模型中异常数据泛滥。例如,控制信号的细微延迟可能导致对坏数据进行模型培训。在流环境中,控制这一延迟非常棘手,因为无法保证控制信号和数据在操作符之间的移动速度。
[size=1.166em]可以考虑预报某个区域的电力使用情况的示例。在模型构建周期中,必须忽略小电力故障,否则可能在预报期间产生失真的结果。小故障或超出范围的数据需要丢弃,控制端口特性可帮助实现此目的。本文将介绍如何将控制信号的检测和提交与用于模型学习的数据进行同步。总体解决方案架构如 图 1 所示。
图 1. 实时控制信号和数据同步总体解决方案图


论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
 楼主| 发表于 2014-2-12 21:46 | 显示全部楼层
简介
[size=1.166em]InfoSphere Streams Time Series 工具包通过许多操作符进行了完善,能够建立预报、跟踪、回归和预测模型。在一些真实场景中,输入时间序列可能更改它的频率范围或者可能不断造成干扰,或者开始丢失数据。使用这些质量糟糕的数据来构建模型可能导致糟糕的性能。因此,在数据质量下降时,必须执行重新构建模型或暂停更新模型参数的过程。而在运行时这么做是一大挑战。
[size=1.166em]Time Series 工具包的建模操作符通过使用一个控制端口 来接受特定的控制信号,促进了模型的再培训、暂停或恢复。一旦在输入数据中检测到异常或变更,就可以向建模操作符发送控制信号,让其更改其行为。但是,这个控制信号应与所监视的数据同步,否则会导致模型中异常数据泛滥。例如,控制信号的细微延迟可能导致对坏数据进行模型培训。在流环境中,控制这一延迟非常棘手,因为无法保证控制信号和数据在操作符之间的移动速度。
[size=1.166em]可以考虑预报某个区域的电力使用情况的示例。在模型构建周期中,必须忽略小电力故障,否则可能在预报期间产生失真的结果。小故障或超出范围的数据需要丢弃,控制端口特性可帮助实现此目的。本文将介绍如何将控制信号的检测和提交与用于模型学习的数据进行同步。总体解决方案架构如 图 1 所示。
图 1. 实时控制信号和数据同步总体解决方案图


使用道具 举报

回复
论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
 楼主| 发表于 2014-2-12 21:46 | 显示全部楼层
简介
[size=1.166em]InfoSphere Streams Time Series 工具包通过许多操作符进行了完善,能够建立预报、跟踪、回归和预测模型。在一些真实场景中,输入时间序列可能更改它的频率范围或者可能不断造成干扰,或者开始丢失数据。使用这些质量糟糕的数据来构建模型可能导致糟糕的性能。因此,在数据质量下降时,必须执行重新构建模型或暂停更新模型参数的过程。而在运行时这么做是一大挑战。
[size=1.166em]Time Series 工具包的建模操作符通过使用一个控制端口 来接受特定的控制信号,促进了模型的再培训、暂停或恢复。一旦在输入数据中检测到异常或变更,就可以向建模操作符发送控制信号,让其更改其行为。但是,这个控制信号应与所监视的数据同步,否则会导致模型中异常数据泛滥。例如,控制信号的细微延迟可能导致对坏数据进行模型培训。在流环境中,控制这一延迟非常棘手,因为无法保证控制信号和数据在操作符之间的移动速度。
[size=1.166em]可以考虑预报某个区域的电力使用情况的示例。在模型构建周期中,必须忽略小电力故障,否则可能在预报期间产生失真的结果。小故障或超出范围的数据需要丢弃,控制端口特性可帮助实现此目的。本文将介绍如何将控制信号的检测和提交与用于模型学习的数据进行同步。总体解决方案架构如 图 1 所示。
图 1. 实时控制信号和数据同步总体解决方案图


使用道具 举报

回复
论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
 楼主| 发表于 2014-2-12 22:24 | 显示全部楼层
将信号与输入数据同步
使用控制信号时,必须注意的一点是,信号要与数据同步,以预防操作符内部模型中异常数据泛滥。同步可通过多种方式实现。在本文中,我们将重点介绍一种使用 SPL 自定义操作符的同步方法。使用已经编写了逻辑的自定义操作符来检测超出范围的数据,然后提交暂停信号。检测到超出范围的数据后,就会向操作符发送控制信号,然后会忽略后续数据,直到收到恢复信号。
清单 1. 在 InfoSphere Streams 中使用 SPL 自定义操作符来同步数据与 Time Series 工具包控制信号
stream<float64 ts> Src=FileSource()
{
                param
                file: "excg.csv";
}

stream<float64 ts> SrcDel=Throttle(Src)
{
                param
                rate:1.0;
}


/*The custom operator below detects the noisy data. Here, the noisy data is assumed
to be above 250.0. The exchange rate date below 250 is
considered for modeling and forecasting.*/

stream<controlSig> controlInpSuspend=Custom(SrcDel)
   {
          logic
                onTuple SrcDel:
                {
                        if (ts>250.0)
                        {
                        controlSig sig={SuspendSignal=Suspend,suspendValue=40.0,
                        inputts = ts};
                       
// If input time series data is greater than 250.0, then submit suspend signal.
                                 submit(sig,controlInpSuspend);
                         }
                        else
                        {
                        controlSig sig={SuspendSignal=Resume,suspendValue=0.0,
                        inputts = ts};
                       
/* If data is within the range and the model was suspended,
then send Resume signal to ARIMA.*/

                                 submit(sig,controlInpSuspend);
                                 
/* If the model was not in suspended state, then ARIMA will continue
to update the model and forecast.*/
                                      
                        }                       
                }
        }               

/*This ARIMA operator receives the input tuples and the signals on the control port
for its operation.*/
      stream<list<float64>  forecast > ARIMALearn =ARIMA(SrcDel;controlInpSuspend)
        {
                param
                inputTimeSeries: ts;
                initSamples:10u;
                stepAhead:1u;
                controlSignal:SuspendSignal;
                // Control Port which received Suspend and Resume Signal
               
                output
                            ARIMALearn: forecast = forecastedTimeSeriesStep();
        }
图 2 描绘了 清单 1 中描述的 SPL 程序的输出。当输入超出范围时(在给定的用例中为超过 250 个单元),预报和建模更新过程就会暂停,输入抽样会被丢弃。当输入回落到允许的范围(<250)时,就会发出恢复信号,然后会继续预报未来的值。

使用道具 举报

回复
论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
 楼主| 发表于 2014-2-12 22:24 | 显示全部楼层
先决条件
业务先决条件:本文的读者需要掌握从 InfoSphere Streams 设计和运行 SPL 应用程序作业的基本技能,以及 Time Series 工具包的基础知识。
软件先决条件:InfoSphere Streams 3.1
回页首
Time Series 工具包控制信号 — 它们是什么?
InfoSphere Streams Time Series 工具包提供了各种不同的信号,可以实时地将它们提供给受支持的建模操作符。下表列出了各种控制信号和它们的重要性。
表 1. 各种控制信号和它们的重要性
Times Series 工具包控制信号
信号        说明
Suspend         暂停模型培训。此信号应在有人感觉数据可能是干扰数据时提供,以预防操作员构建错误的模型。
Resume         恢复暂停的模型培训操作。
Retrain         自数据趋势变化或模型失去其重要性后,重新培训模型。
Monitor         观察当前计算的模型系数。在领域专家诊断模型时,此特性很有用,也可保留它,在不久的将来重新加载到操作符中。
Load        将现有模型加载到操作符中。此信号可在某个现有模型似乎与输入数据的模式或趋势关系更紧密时利用。

使用道具 举报

回复
论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
 楼主| 发表于 2014-2-12 22:25 | 显示全部楼层
Control input port and supported control signals and parameters
The control port is an optional input port where you can send control signals to control the behavior of an operator. You can change the behavior of the operator at run time without having to recompile your application.

For example, you can send a control signal to the control port to retrain operators that are not adaptive. If the input data that was used during the learning cycle to estimate the model loses its relevance or the trend of the input data changes significantly, the operator can no longer predict values accurately. You can send a control signal to the operator and provide sample data for re-estimating the model. The operator can then use this sample data to re-estimate the model to predict values accurately.

The control port supports the following control signals:
Retrain
Use new input time series data to rebuild the model.

Load
Initialize the model with the provided coefficients. If you provide incorrect coefficients, the operator logs a warning message in the log file and continues to predict values by using the older coefficients.

Monitor
Write the coefficients to the optional monitor output port for later use or for further analysis.

Suspend
Stop the training of the model and forecasting of values temporarily. The training of the model and forecasting is suspended until the operator receives the Resume signal.

Resume
Continue with the model training process and forecasting.

Operators and supported control signals
The following table shows the supported control signals for operators that support the optional input control port:
Operator        Supported control signals
ARIMA        Retrain, Monitor, Load, Suspend, and Resume
LPC        Retrain, Monitor, Load, Suspend, and Resume
VAR        Retrain, Monitor, Load, Suspend, and Resume
DSPFilter        Monitor and Load

使用道具 举报

回复
论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
 楼主| 发表于 2014-2-12 22:26 | 显示全部楼层
Control port parameters
The following optional parameters represent the attributes that contain the control signal and the parameters for the control port:
controlSignal
This optional parameter is an attribute expression that specifies the name of the attribute in the control port, which holds the control signal. The supported type is TSSignal.
partitionBy
This optional parameter is an attribute expression that specifies the name of the attribute in the control port, which the operator uses for retraining, loading, and monitoring a model. If the operator uses the partitionBy parameter, you must also specify the key value to identify the model that you want to retrain, monitor, or load.
inputCoefficient
This optional parameter is an attribute expression that specifies the name of the attribute in the control port, which ingests the coefficients that are used for loading the model. If this parameter is not specified, by default, the inputCoefficient attribute is used. If the default attribute or the inputCoefficient parameter is not provided, the operator throws an exception. If the attribute or the parameter value does not contain valid coefficients, the load operation fails and the operator logs a warning message for each failed operation. The operator continues to predict values by using the older coefficients.
The supported type is map<rstring,map<uint32,float64>>. The following table shows the format for specifying the coefficients:
Operator        Format
ARIMA        {"AR":{0u:{0u:1.1,1u:1.2},1u:{0u:1.2,1u:1.3}},"MA":{0u:{0u:1.1,1u:1.2}}
LPC        {{0u:{0u:1.1,1u:1.2},1u:{0u:1.2,1u:1.3}}
VAR        {{0u:{0u:[1.1,1.2],1u:[1.2,1.3]},1u:{0u:[1.1,1.2],1u:[1.1,1.2]}}…}
DSPFilter        {“xcoeff”:{0u:1.1,1u:1.2},”ycoef”:{0u:1.2,1u:1.3}}
retrainingConfig
This optional parameter is an attribute expression that specifies the name of the attribute in the control port, which ingests the configurations that are used for retraining the model. If this parameter is not specified, by default, the retrainingConfig attribute is used. If the default attribute or the retrainingConfig parameter is not provided, the operator throws an exception. If the attribute or the parameter does not contain valid configurations, the retrain operation fails and the operator logs a warning message for each failed operation. The operator continues to predict values by using the older configuration.
The supported type is map<rstring,uint32>. The following table shows the format for specifying the retraining configurations:
Operator        Format
ARIMA        Use the initSamples parameter of the operator to specify the number of samples to use for retraining the model. For example, {"initSamples":12}
LPC        Use the initSamples parameter of the operator to specify the number of samples to use for retraining the model and the order parameter to specify the order of the autoregressive model. For example, {"initSamples":13,"order":4}
VAR        Use the initSamples parameter of the operator to specify the number of samples to use for retraining the model and the order parameter to specify the order of the multivariate autoregressive model. For example, {"initSamples":13,"order":2}

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年9月21日~23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表