登录
首页精彩阅读SPSS与Streams的集成实现实时预测
SPSS与Streams的集成实现实时预测
2017-03-06
收藏

SPSS与Streams的集成实现实时预测

SPSS Modeler 是一个数据挖掘工作台,提供了一个可了解数据并生成预测模型的最先进的环境。Streams 提供了一个可伸缩的高性能环境,对不断变化的数据进行实时分析,这些数据中包括传统结构的数据和半结构化到非结构化数据类型。

在实时处理需要高级分析时,使用Streams和SPSS集成,实现实时评分预测。实时应用预测分析的用例的示例包括网络安全、银行和信用卡欺诈检测、预测性维护,以及实时营销产品。

Streams + SPSS Analytics Toolkit 的特点

利用Streams实现高吞吐量、低延迟的评分

利用SPSS Modeler开发和建立评分模型

通过SPSSScoring Operator将模型部署到Streams

模型更新而无需暂停Streams

通过SPSS Collaboration and Deployment Services管理模型的生命周期

SPSS Analytics Toolkit for Streams

SPSSScoring operator

SPSSScoring operator实现在Streams应用中使用预定义的SPSS的预测模型进行评分预测,它假设预测模型已经在SPSS Moduler定义好并通过SPSS Solution Publisher导出这三个文件:

model.pim

model.par

model.xml

SPSSScoring 代码例子

stream<DataSchemaPlus> scorer = com.ibm.spss.streams.analytics::SPSSScoring(data) {parampimfile: getThisToolkitDir() +"/etc/PimParXml/model.pim"; parfile: getThisToolkitDir() +"/etc/PimParXml/model.par"; xmlfile: getThisToolkitDir() +"/etc/PimParXml/model.xml"; modelFields:"sex","income"; streamAttributes: s_sex, baseSalary+bonusSalary; output scorer: income = fromModel("income"), predLabel = fromModel("$C-beer_beans_pizza"), confidence = fromModel("$CC-beer_beans_pizza"); }

SPSSPublish operator

SPSSPublish operator 自动“发布”的一个模型文件的评分分支并总结所生成的文件,以便下游的Operator可以通过“分布”操作所创建或更新的PIM、PAR和XML文件,刷新他们的评分标准实施。通常情况下,SPSSPublish operator配合上游的DirectoryScan 或 SPSSRepository operator,及下游的SPSSScoring operator,即:

DirecoryScan/SPSSRepository -> SPSSPublish -> SPSSScoring

其中DirectoryScan 或 SPSSRepository operator检测到有新的模型文件可用,就将新模型的文件名发生个SPSSPublish operator。SPSSPublish的下游通常是SPSSSoring。当SPSSPublish获取到新模型,它就会生成SPSSSoring所需的PIM、PAR和XML文件,然后发生通知给SPSSSoring,通知也新的模型可用了。SPSSScoring收到通知后会刷新内部模型。

SPSSPublish代码例子:

stream<rstring strFilePath> strFile = DirectoryScan(){
       param
         directory : "/tmp";
         pattern : "newmodel.str";
         ignoreExistingFilesAtStartup : true;
       config placement : host(P1);
     }

    stream<rstring fileName> notifier = com.ibm.spss.streams.analytics::SPSSPublish(strFile){
     param
       sourceFile: "newmodel.str";
       targetPath: "/tmp";
     config placement : host(P1);
  }

    stream<DataSchemaPlus> scorer = com.ibm.spss.streams.analytics::SPSSScoring(data;notifier) {
    param
      pimfile: getThisToolkitDir() +"/etc/PimParXml/model.pim";
      parfile: getThisToolkitDir() +"/etc/PimParXml/model.par";
      xmlfile: getThisToolkitDir() +"/etc/PimParXml/model.xml";
      modelFields: "sex","income";
      streamAttributes: s_sex, baseSalary+bonusSalary;

    output
      scorer:
        income = fromModel("income"),
        predLabel = fromModel("$C-beer_beans_pizza"),
        confidence = fromModel("$CC-beer_beans_pizza");
    config placement : host(P1);
  }

SPSSRepository operator

SPSSRepository operator监视部署在SPSS Collaboration and Deployment Services库的对象的变化。当被监控的对象发生变化,相关通知则会发给所有的Listener。收到通知,SPSSRepostory会从Repostory下载该对象的新版本文件并将文件写到目标目录,这步操作成功之后,SPSSRepostory再提交描述文件已更新的事件给下游Operator。

Streams + SPSS 的参考架构

根据前面对SPSS Analytics Toolkit的功能描述,Streams + SPSS的参考架构可以由下图表示:

小结

本文通过对SPSS Analytics Toolkit和这些Toolkit与Streams集成参考架构的描述,为读者呈现了如何使用业界最好的数据挖掘工具SPSS和流数据分析平台Streams进行实时评分和预测。


数据分析咨询请扫描二维码

客服在线
立即咨询