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


发布者 chenjunji123456  发布时间 1469674424542
关键字 分享 
spss

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)
{
  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");
}

 

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

小结

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

更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>

详情请咨询在线客服

客服热线:023-66090381









  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA