越来越多的企业希望能够实时地对客户数据进行预测分析从而能够快速响应客户请求,例如呼叫中心接到客户投诉电话,接线员需要预测该客户是否会流失,从而判断是否要提供以及何种客户挽留方案。这是一个非常典型的实时预测分析的应用,接线员需要立即获得预测结果以辅助其对客户的投诉做出快速响应。IBM SPSS Ca&DS (Collaboration and Deployment Services) 的实时预测分析服务能够快速响应客户请求,实时提供预测结果。该服务具有以下两大优势:一是其高效性,可以大大提高企业快速响应能力;二是操作人员无须具有专业的统计知识,也无须了解底层模型,只需根据界面提示询问用户从而提供必要的输入信息。实时分析服务广泛应用在呼叫中心,电信运营商,保险理赔,以及其它一些服务行业。
IBM SPSS Ca&DS 提供了完整的实时预测分析解决方案,包括模型部署,模型配置,数据采集 , 实时预测,模型性能监控,日志信息等功能。
本文以电信客户挽留方案为例,来介绍实时预测分析过程。随着电信市场的日益饱和,争取新客户,尤其是争取竞争对手的客户成本越来越高。营销理念从增加新客户数量过渡到提高存量客户质量。对于电信企业来说,客户对企业的短期贡献,并不能成为客户价值的客观体现。客户价值需要考虑到维系客户的成本,及客户长期对企业的贡献。电信企业通过客户的现有数据来分析和计算出用户的“客户价值”,来对客户进行细分。在对客户细分的基础上,有针对性的提出和实施市场营销活动,从而达到提高客户终身价值和降低营销成本的目的。例如针对 “客户价值” 较高而且消费波动比较大的客户,电信企业采取较丰厚的促销手段对用户实施挽留措施。这样把市场营销和数据挖掘有机的结合,达到企业收益的最大化。
IBM SPSS Ca&DS 实时预测分析服务的架构请参见图 1。客户应用程序通过 HTTP/SOAP 协议或者 JMS 向实时预测分析服务发起请求,实时预测分析则通过内嵌的数据服务与各种数据库进行交互,对用户请求进行运算,并将预测分析结果返回给客户应用程序。 实时预测分析服务通过适配器支持不同种类的模型文件。关于适配器的概念请参见模型种类一章。
图 1. 实时预测分析服务架构
实时预测分析的完整流程包括:模型部署,模型配置,实时预测,性能监控和日志信息,请参见图 2。本文的后续章节将会详细介绍上述步骤。
图 2. 实时预测分析实施过程
IBM SPSS Ca&DS 当前默认支持的模型文件种类有:PMML,stream 和 scenario。其中 stream 和 scenario 是由 IBM SPSS Modeler 生成的模型文件。IBM SPSS Ca&DS 对模型文件的支持是可扩展的,不仅局限于这三种类型。IBM SPSS Ca&DS 实时预测分析服务提供了一套接口,对于任何建模产品或工具,只要其提供适配器实现这些接口,并在 IBM SPSS Ca&DS 服务器上安装该适配器件,IBM SPSS Ca&DS 就能对相应类型的模型文件进行实时预测分析。
本文的示例电信客户挽留方案模型采用的是 stream 模型文件。
模型部署是指将模型文件训练并且发布到 IBM SPSS Ca&DS 企业级集成平台的过程。下文以 IBM SPSS Modeler 生成的模型文件 stream 为例详细介绍如何分析电信的客户数据,训练电信客户挽留方案模型,以及最终将该模型部署到 Ca&DS 服务器。
电信客户的数据是大量的而且是使用描述性数据格式来记录的,所以要对客户数据进行清洗。数据清洗包含两个部分:首先对客户数据进行分析来决定哪些数据项是影响因子进行保留,并且删除无效数据项。其次把有效数据项内的数据进行数据格式的转化,利于模型的训练和学习。
下表所列数据是本章例子中所用到的有效数据,以及数据格式转化的规则说明。表 1 有 4 列数据:
数据名称:是数据在数据库里存储时所用的字段名称;
数据说明:描述数据代表的实际意义;
原始数据格式:描述数据在未处理之前的数据格式;
数据格式转化规则:描述数据转化的规则以及转化之后的数据格式。
表 1. 客户数据说明表
| 数据名称 | 数据说明 | 原始数据格式 | 数据格式转化规则 |
|---|---|---|---|
| LF | 客户每月长话费的使用情况 | 客户长话费的原始数据是连续的小数 | 把连续数据离散化:
月长话费在 100 元以上,用 1 来表示:1 高 (100~); 月长话费在 50 到 100 元之间,用 2 表示:2 中 (50~100); 月长话费在 50 元以下,用 3 来表示:3 低 (0~50)。 |
| LF_Trend | 客户近 3 个月长花费使用趋势走势 | 客户近 3 个月长花费使用趋势走势的原始数据是连续的小数 | 把连续数据离散化:
如果客户近 3 个月长花费使用趋势走势不变,用 1 表示 ; 如果客户近 3 个月长花费使用趋势走势上升,用 2 表示 ; 如果客户近 3 个月长花费使用趋势走势下降,用 3 表示。 |
| AF | 客户每月区内话费的使用情况 | 客户每月区内话费的原始数据是连续的小数 | 把连续数据离散化:
月区内话费 100 元以上,用 1 来表示:1 高 (100~); 月区内话费在 50 到 100 元之间,用 2 表示:2 中 (50~100)。 月区内话费在 50 元以下,用 3 来表示:3 低 (0~50)。 |
| AF_Trend | 客户近 3 个月区内话费使用趋势走势 | 客户近 3 个月区内话费使用趋势走势的原始数据是连续的小数 | 把连续数据离散化:
如果客户近 3 个月区内话费使用趋势走势不变,用 1 表示; 如果客户近 3 个月区内话费使用趋势走势上升,用 2 表示; 如果客户近 3 个月区内话费使用趋势走势下降,用 3 表示。 |
| IP | 客户每月 IP 话费的使用情况 | 客户每月 IP 话费的原始数据是连续的小数 | 把连续数据离散化:
月 IP 话费在 100 元以上,用 1 来表示:1 高 (100~); 月 IP 话费在 50 到 100 元之间,用 2 表示:2 中 (50~100); 月 IP 话费在 50 元以下,用 3 来表示:3 低 (0~50)。 |
| IP_Trend | 客户近 3 个月 IP 话费使用趋势走势 | 每用户平均收入的原始数据是连续的小数 | 把连续数据离散化:
如果客户近 3 个月 IP 话费使用趋势走势不变,用 1 表示; 如果客户近 3 个月 IP 话费使用趋势走势上升,用 2 表示; 如果客户近 3 个月 IP 话费使用趋势走势下降,用 3 表示。 |
| ARPU | ARPU(ARPU-AverageRevenuePerUser) 即每用户平均收入 | 每用户平均收入的原始数据是连续的小数 | 把连续数据离散化:
每用户平均收入在 100 元以上,用 1 来表示:1 高 (100~); 每用户平均收入在 50 到 100 元之间,用 2 表示:2 中 (50~100); 每用户平均收入在 50 元以下,用 3 来表示:3 低 (0~50)。 |
| ARPU_Trend | 客户近 3 个月 ARPU 趋势 | 客户近 3 个月 ARPU 趋势的原始数据是连续的小数 | 把连续数据离散化:
如果客户近 3 个月 ARPU 趋势不变,用 1 来表示 ; 如果客户近 3 个月 ARPU 趋势上升,用 2 来表示; 如果客户近 3 个月 ARPU 趋势下降,用 3 来表示。 |
| ARPU_Value | ARPU 的实际值 | 每用户平均收入的原始数据是连续的小数 | 不做处理 |
| Status | 客户的状态 | 客户的状态的原始数据是描述性语言 | 数据化处理:
正常:用 1 表示;欠费 1 个月:用 2 表示 ; 欠费 2 个月:用 3 表示;拆前停机:用 4 表示; 停机保号:用 5 表示;假拆:用 6 表示。 |
| Lost_Flag | 客户的流失标识,标识客户是不是流失了 | 客户的流失标识的原始数据是描述性语言 | 数据化处理:
如果客户处于流失状态用 1 标识 ; 如果客户处于非流失状态用 2 标识。 |
IBM SPSS Molder 产品提供了成熟的模型训练以及模型使用的框架。本文的例子就是利用 IBM SPSS Molder 来实现电信客户挽留方案模型训练的。如图 3 所示。
图 3. 电信客户挽留方案模型
把客户数据分析章节中处理过的电信客户数据作为模型数据源为模型提供数据。数据源内有 2 种数据角色:预测数据和输入数据。预测数据是需要预测的数据。模型通过对历史数据的分析得出输入数据和预测数据的关联,来对预测数据进行预测。本文例子中,电信客户挽留方案模型将对客户产生的各项话费以及话费趋势进行分析,从而预测客户是否会流失以及相应的挽留方案。该例所需输入数据是 LF,LF_Trend,AF,AF_Trend,IP,IP_Trend,ARPU,ARPU_Trend,ARPU_Value,Status 和 Lost_Flag。预测数据是 offer,Campaign,Offer.Allocation-Segment Name 及 Expected Profit-Value(预测数据含义参见“实时预测”章节)。数据源以及模型组成一个树形结构,叫做 Branch。点击 Branch 的最后一个节点,然后点击运行键,IBM SPSS Molder 会自动把数据源中的数据读取出来对模型进行训练。模型训练完成将生成 Nugget。把输入数据送给 Nugget,Nugget 会通过对电信客户历史数据的分析,从而对现有的客户数据进行预测。
电信客户挽留方案模型训练完毕后,需要发布到 Ca&DS 服务器,才可对该模型进行实施预测分析。IBM SPSS Modeler stream 可以通过 2 种方式发布到 IBM SPSS Ca&DS 集成平台上。
通过 IBM SPSS Molder 发布:在 IBM SPSS Molder 客户端点击“部署成 stream 文件”按钮。登录 IBM SPSS Ca&DS 服务器对话框被调出并提示用户登陆到 IBM SPSS Ca&DS 服务器。
图 4. Ca&DS 服务器信息
图 5. 输入验证信息
通过 IBM SPSS Ca&DS 服务器的认证以后,存储对话框会引导用户对 stream 进行属性配置。属性的配置很重要,会对 stream 在 Ca&DS 服务器上的行为有所影响。这里有 4 个标签页可对 stream 的属性做不同的配置:
在 Location 标签页中,可以指定 stream 在服务器上的存贮位置和名字。IBM SPSS Ca&DS 服务器采用的是为大众所熟悉的目录管理结构,用户可以定义自己的目录(文件夹)来存贮和管理 stream 模型文件。
图 6. 设置 Location 信息
在 Information/Topics 标签页中,可以指定 stream 在服务器上的属性信息。其中在 Version Label 属性里面,可以设置 stream 的 Label。在 IBM SPSS Ca&DS 服务器上的存贮文件可以是多版本的,不同的文件版本用 Label 来进行有效的区分。其他的属性信息,在此就不再累述。
图 7. 设置 Information 属性
在 Security 标签页中,可以指定 stream 在服务器上的安全信息。通过对安全的配置可以限定 stream 在 IBM SPSS Ca&DS 服务器内,用户的访问权限。
图 8. 设置安全属性
通过 IBM SPSS Ca&DS 客户端发布: IBM SPSS Molder 把 stream 文件保存到操作系统的文件系统,文件以 .str 的后缀表示。通过 IBM SPSS Ca&DS 客户端登录到 IBM SPSS Ca&DS 服务器,点击“加入文件到系统”然后浏览到 stream 文件所在的位置,加入 stream 文件到 IBM SPSS CaDS。以这种方式存放到 IBM SPSS Ca&DS 服务器上的文件属性全部使用默认值。
部署到 IBM SPSS Ca&DS 的 stream 模型文件不能直接用来进行实时预测分析,需要基于模型文件创建 Scoring Configuration,Scoring Configuration 是实时预测分析操作和运算的对象。IBM SPSS Ca&DS 提供了友好的配置向导来引导用户完成 Scoring Configuration 的创建。详细步骤如下:
使用有效的用户身份登录通过 IBM SPSS Ca&DS 富客户端 Deployment Manager 登录到 IBM SPSS Ca&DS 服务器上。浏览到电信客户挽留方案模型所在的位置。右键点击该模型文件,选择“创建 Scoring Configuration”选项。
图 9. 模型配置
“Add New Scoring Model Scoring”对话框被成功调出。在 Name 输入框为 Scoring Configuration 输入有意义的名字,如:电信客户挽留方案。Scoring Configuration 的名字必须是唯一的,是区分 Scoring Configuration 的唯一标识。在 Label 下拉菜单,可以选择 stream 的不同版本进行配置。
图 10. 创建 Scoring Configuration 对话框
点击 Next 按钮进入 “Input Data Order”对话框。在这个对话框,是对 Scoring Configuration 所使用的输入数据进行排序配置。通过选中其中一个数据项,然后点击 Up 或者 Down 按钮来对数据顺序进行配置。
图 11. 输入数据项顺序配置
点击 Next 按钮进入 “Output Data Returned Setting”对话框。在这个对话框,可以设置预测的结果中的数据是否要输出到预测界面中进行查看。
图 12. 输出项设置
管理员完成客户挽留方案模型配置之后,终端用户登录 IBM SPSS Ca&DS web 客户端 Deployment Portal,点击模型文件并选中创建好的 Scoring Configuration:电信客户挽留方案,来对提出申请的电信客户进行实时预测。如图 5-1 所示。
图 13. 数据采集
实时预测的数据采集界面显示了模型预测需要的所有输入字段,允许用户在线采集即时数据。实时采集数据是 IBM SPSS Ca&DS 实时预测服务的一大特点和优势。如表 2 所示,输入这样一组客户数据:
表 2. 输入数据
| 输入字段名 | 输入字段值 |
|---|---|
| AF | 1 |
| AF_Trend | 3 |
| ARPU | 1 |
| ARPU_Trend | 3 |
| ARPU_Value | 348 |
| IP | 3 |
| IP_Trend | 1 |
| LF | 1 |
| LF_Trend | 3 |
| Lost_Flag | 1 |
| Status | 2 |
对照模型部署章节中对输入字段的解释,该组值的含义见表 3:
表 3. 输入数据含义
| 输入字段名 | 输入字段值 | 输入值含义 |
|---|---|---|
| AF | 1 | 区内话费高 |
| AF_Trend | 3 | 区内话费下降 |
| ARPU | 1 | ARPU 高 |
| ARPU_Trend | 3 | ARPU 下降 |
| ARPU_Value | 348 | ARPU 实际值 |
| IP | 3 | IP 话费低 |
| IP_Trend | 1 | IP 话费走势正常 |
| LF | 1 | 长话费高 |
| LF_Trend | 3 | 长话费下降 |
| Lost_Flag | 1 | 即将流失客户 |
| Status | 2 | 客户状态为欠费一个月 |
完成输入后点击“评分”按钮。预测结果便显示在页面下方,如图 14 所示:
图 14. 实时预测结果
预测结果一共有 4 个输出字段,字段名称及其含义如表 4 所示:
表 4. 预测结果及含义
| 输出字段名 | 输出字段含义解释 |
|---|---|
| Campaign | 客户价值分类,包括高值客户,中值客户和低值客户 |
| Offer.Allocation-Segment | 客户消费趋势和流失概率 |
| Offer | 为客户提供的挽留方案 |
| Expected Profit-Value | 实施挽留方案后的期望收益值 |
参照图 14 所示预测结果,可以得出结论:该客户是一个高值客户,但其话费下降快,流失倾向很高。因此,电信应对该客户采取“高值客户挽留方案”。“高值客户挽留方案对应着一系列具体措施,如赠送套餐,减免花费等等,而这些具体措施可由电信根据运营需求实时调整。通过实施“高值客户挽留方案”,该客户将为电信带来的月收益是:162.4 元。期望收益对挽留方案的制定具有指导性意义,如果挽留方案实施后带来的收益如果低于期望收益则说明该方案不够理想,需要进行调整。
实时预测分析服务的最大优势之一在于其高效性,用户非常关心该服务的性能指标是否能达到他们的要求。为了方便用户监控和评估该项服务的性能,IBM SPSS Ca&DS 富客户端 Deployment Manager 提供了两个视图来实时监控实时预测分析服务的运行性能,分别是模型统计视图和模型图表视图。
模型统计视图列出了当前的 IBM SPSS Ca&DS 服务器里的所有 Scoring Configuration,该视图列举了实时预测分析的重要性能统计信息,包括:平均评分时间,评分次数 / 秒以及总评分次数。此外,该视图还列举了其它几项重要信息,包括:Scoring Configuration 状态,Scoring Configuration 名称,模型的路径与名称,以及模型的标签。用户通过点击视图右上方的刷新按钮获得最新统计信息。请参见图 6-1。该图显示了针对电信客户的多个模型文件以及基于模型文件创建的 scoring configuration,包括本文示例的电信客户挽留方案,以及电信客户流失预测,客户挽留期望收益和高值客户行为分析。
图 15. 模型统计视图
表 5 将具体解释每列信息的具体含义:
表 5. 模型统计视图列名及解释
| 模型统计视图列名 | 列名解释 |
|---|---|
| Scoring Configuration 状态 | 三种状态:启动,暂停,错误 |
| Scoring Configuration 名称 | 用户为 Scoring Configuration 自定义的名字,必须全局唯一 |
| 模型的路径与名称 | 标示了模型文件的名称以及存储路径 |
| 标签 | 模型文件的标签 |
| 平均评分时间 | 系统完成一次预测的平均时间,单位是毫秒 |
| 评分次数 / 秒 | 系统在单位时间 ( 秒 ) 内完成的预测次数 |
| 总评分次数 | 系统已经完成的预测总次数 |
模型统计视图不仅可以显示 Scoring Configuration 的性能信息,而且还可以重置 Scoring Configuration 状态,也可以编辑或者删除 Scoring Configuration。
在模型统计视图中选定 Scoring Configuration, 通过其右键菜单便可调出该 Scoring Configuration 的模型图表视图。
模型图表视图通过实时绘制折线图的方式来显示各项性能指标。模型图表视图提供了共 27 种性能指标,包括平均计算时间,平均数据获取时间,平均等待时间等等。通过模型图表视图,用户通过监测指定时段的性能趋势来分析系统性能瓶颈,以及受制约因素等等。
图 16 绘制的是电信客户挽留方案模型在最近半小时之内进行实时预测的平均计算时间。通过该图,我们得到如下结论:当大批量的实时预测请求(本文示例采用了 1000 条并发请求)同时到来时,平均计算时间会出现上升的趋势;当不再有新增请求到来,平均计算时间会有小幅下降,最终趋于一个平稳值。
图 16. 模型图表视图 - 平均计算时间
绝大多数行业都保留历史数据。电信运营商保留以往客户挽留方案,以便做后续业务的追踪。比如对于一个客户应用某个方案以后,定期对比应用的效果。为了适应这种需求,IBM SPSS Ca&DS 实时预测分析服务提供了日志信息统计功能,记录了预测过程所使用的数据以及预测结果数据。下文介绍了如何使用日志信息功能,以及如何查看日志信息。
IBM SPSS Ca&DS 富客户端在创建 Scoring Configuration 过程中提供日志定制。如图 17 所示:
图 17. 定制日志信息
为了捕捉记录信息,首先需要激活“日志记录”选项,并且选择预测过程需要记录的数据项。
表 6 所列的是可被记录的数据项分类以及用途。
数据名称:可被选为记录的数据类别;
数据说明:介绍数据类别的用途。
表 6. 日志数据项分类及解释
| 数据名称 | 数据说明 |
|---|---|
| Model Inputs | 用于做实时预测的输入项 |
| Model Outputs | 由模型计算出的各种类型的输出 |
| Scoring Engine Metrics | 反映 Scoring Configuration 性能的测量值 |
| Scoring Engine Properties | Scoring Configuration 本身的一些特征 |
当需要查看历史数据的时候,可以到数据库相应的表中找出所需要的数据。
表 SPSSSCORE_LOG 用来记录每一次预测过程所使用的输入数据以及预测数据。一次预测过程对应一条记录,共由三列组成,分别是序列号,时间戳,信息。其中信息一列存储的是一个 xml 文件的链接,预测过程的所有数据都记录这个 xml 文件里。如图 18 所示:
图 18. SPSSCORE_LOG 表
此外,对于用户最关心的输入数据以及预测数据,还可以直接从这两张表 SPSSSCORE_V_LOG_INPUT 和 SPSSSCORE_V_LOG_OUTPUT 里查看。如图 19,20 所示。
图 19. SPSSCORE_V_LOG_INPUT 表
图 20. SPSSCORE_V_LOG_OUTPUT 表
电信运营商通过这样的方法配置和查看日志信息,从而得知客户以往的状态,趋势,以及已经进行过的挽留方案,便于审计和管理。例如运营商希望评估其上季度采取的高值客户挽留方案是否获取了良好收益,可以通过查询日志获取上季度对哪些客户实施了高值客户挽留方案,并计算实施该方案产生的总花费以及期望的总收益,然后通过与挽留方案实施后客户的实际消费值进行对比,便可判断该挽留方案是否取得了良好效果,合理与否,以及如何调整该方案来获取更优的结果。
本文介绍了 IBM SPSS Ca&DS 实时预测分析服务的优势,适用的行业范围,并以电信客户挽留方案为例,阐述了实时分析服务的架构,操作流程(包括模型配置,模型部署以及实时预测),性能监控以及日志信息。实时预测分析服务具有方便用户采集即时数据,轻量级、高效性与易用性等特点,使得该服务能广泛应用在呼叫中心,电信运营商以及保险理赔等行业。
学习
-
使用 IBM SPSS Ca&DS 与 Modeler 构建企业级数据挖掘与预测分析解决方案,获取更过关于 IBM SPSS Ca&DS 的更多信息。
- 通过
数据挖掘产品 IBM SPSS Modeler 新手使用入门,获取更多关于 IBM SPSS modeler 的信息。
- 随时关注 developerWorks 技术活动 和 网络广播,了解各种 IBM 产品和 IT 行业话题。
- developerWorks 播客:聆听针对软件开发人员的有趣的访谈和讨论。
- developerWorks 演示中心:观看面向初学者的产品安装和设置演示,以及为经验丰富的开发人员提供的高级功能。
获得产品和技术
- 使用可以直接从 developerWorks 下载的 IBM 产品评估试用版软件 构建您的下一个开发项目。
讨论
- 参与 developerWorks 博客 并加入 developerWorks 中文社区:查看开发人员推动的博客、论坛、群组和 wikis,并与其他 developerWorks 用户交流。

赵建媛,IBM 西安实验室的软件工程师,2007 年入职 SPSS 公司从事 IBM SPSS Collaboration and Deployment Services 的测试工作至今。专注于 IBM SPSS Collaboration and Deployment Services 核心功能测试,如实时预测分析,模型评估,模型刷新,模型评分等。

