本系列文章将通过一个虚拟">电信公司的例子,介绍如何使用 InfoSphere Warehouse V10.5(下文简称 ISW Kepler)中的数据预处理工具(Data Preparation)和流解决方案(Flow Solution)解决上述问题。 本文为使用 Data Preparation 和 Flow Solution 工具简化数据挖掘过程系列文章的第二篇,主要介绍如何使用流解决方案简化并实现数据挖掘的建模过程。
在本系列文章的第一篇中我们介绍到,数据的预处理和数据挖掘模型的建立是数据挖掘六大过程中的重要环节,而这两个环节由于其复杂性以及对数据挖掘分析员的高要求,成为数据挖掘项目中最为耗时的两个阶段。
建立数据挖掘模型的过程,要求数据挖掘分析员除了对业务问题有深刻的理解,还需要具备多种技能,如相关数据挖掘工具的使用、SQL 语言和代码编写等。
当前业界有各种优秀图形化的工具帮助构建数据挖掘模型, 如 InfoSphere Warehouse 的 Design Studio 设计器。在设计器中,可以通过将一系列操作符按照合理的方式组合成挖掘流(Mining Flow),执行挖掘流即可得到我们所需的挖掘模型。
虽然挖掘流的使用让我们从自行编写代码生成挖掘模型的复杂工作中解放出来,但是我们依然面临几个问题:
如何选择
合适的挖掘方式、合适的挖掘算法去解决一个商业问题; 如何合理使用和安排用于解决商业问题的挖掘操作符并正确配置。要正确设置挖掘操作符并不简单,当解决一个问题需要设计复杂的挖掘流时,即使是有经验的数据挖掘分析员也需要花费较长的时间
为了解决上述的问题,ISW V10.5 提供了流解决方案(Flow Solution)工具。流解决方案提供了针对特定业务问题的一系列模版和向导,通过回答各种问题,最终根据我们的设置得到解决该问题的一个有效的、完整的、可执行的流。目前流解决方案可用于生成挖掘流和数据流。
流解决方案的使用可以大幅度减少用于解决业务问题的时间和精力。通过使用流解决方案,即使是对挖掘操作符没有使用经验的数据挖掘分析员,也可以轻松设计挖掘流来解决业务问题;而有经验的数据挖掘分析员,则可更快速的创建挖掘模型。
案例简介及环境准备
在接下来的章节中,我们将继续通过虚拟的电信公司的例子介绍如何使用 ISW 10.5 提供的流解决方案工具实现数据挖掘的建模过程,通过对历史离网用户的分析,发现有离网倾向的用户,从而采取措施挽留有价值的用户。
请参照本系列文章的第一篇《使用 Data Preparation 工具简化数据挖掘预处理过程》一文中的案例简介及环境准备一节安装和配置环境。
使用 Flow Solution 构建挖掘流
建模前的分析
电信客户的流失可分为两大类:自愿流失和非自愿流失。前者是指客户由于各种因素自行中断合约,后者是指由于客户的信用问题等原因而由电信公司中止服务。我们分析的对象主要是自愿流失的客户。
要分析客户的行为,并预测将会流失的客户,我们需要创建一个预测模型。
用户的个人信息如年龄、性别、职业,以及用户合同信息如使用的资费套餐、在网时长、目前的状态,还有用户历史使用状况,这些都是我们需要分析的。而这些数据我们可以从每个用户各月的通话情况汇总(DW_USER_COLLECT)中获得。
在创建流解决方案前,我们还需要考虑以下几个方面:
是否使用可视化器显示最终的挖掘模型 是否抽取模型中的信息并存储到表中 是否对模型进行应用评分,以及是否对评分结果进行进一步的分析 如果要构建的是预测模型,是否检测生成的预测模型的质量
创建流解决方案
根据上述的分析,我们要通过流解决方案建立预测模型,而且希望能直观的看到挖掘结果,测试挖掘模型的质量,并使用模型信息做进一步的分析、应用。
具体步骤为:
新建流解决方案 CHURN_PREDICT_FW 在数据项目资源管理器中,展开项目到“流解决方案”,右键点击并选择“新建 -> 流解决方案” 在“新建流解决方案”向导中,选择当前工程并指定输入模型名 CHURN_PREDICT_FW,点击 [ 完成 ] 打开相应的流解决方案向导 选择解决方案计划 解决方案计划定义了解决某一问题所需要的步骤及信息。为了使解决方案有针对性,我们还需要选定该解决方案所属的问题的领域及问题的类型。目前,流解决方案提供了 表 1 中的问题域: 由于我们要创建关联规则模型,因此选择“高级分析解决方案”作为问题域,选择“预测”作为问题,选择“常规预测”作为解决方案计划。点击 [ 下一步 ]。 在“选择连接”中,为我们要创建的挖掘流指定数据源,该数据源存储了挖掘所需要的源表。我们的示例所使用的数据库是“TELE”。 选择源表 在这个阶段,我们要指定用于分析的数据所在的表或视图。 根据分析,我们需要从每个用户各月的通话情况汇总(DW_USER_COLLECT)着手。而且为了得到更精确的分析,我们将对所有交易数据进行分析。如果使用源表数据量很大,可以通过指定“采样率”控制数据量。 在列表中选中表 TELE.DW_USER_COLLECT,并点击 [ 选择源表 ] 加到“选择的源表”中,保持采样率为 100%。 决策步骤 决策步骤中包含了多个问题,用于确定解决方案编辑器最终生成的流的结构。我们对这些问题的回答,决定了挖掘流或数据流的复杂性。对于不同的解决方案计划,决策步骤并不相同。 决策:对列和行进行过滤 我们要选取 2006 年 1 月到 4 月用户数据进行分析。因此选择从源表中过滤掉不必要的行。在“选择行”中,点击 [ 添加条件 ] 并在“SQL 构建器”中指定如 表 2 的过滤条件,并选择结果表包含至少符合其中一个条件的行 决策:对挖掘模型进行后处理 根据我们的期望,选择显示挖掘模型、从模型中抽取树规则、测试预测模型、将为每个记录预测的目标值存储到一个表中(评分)。 决策:分割数据以便进行测试和训练 为了测试预测模型,需要将源表中数据分为两部分:一部分用于测试模型的质量,一部分用于模型的构建。我们可以选择通过指定一个百分比值来控制数据的分布,也可以自行定义数据分割条件。 在这里,我们选择随机分割输入数据,并设定测试数据和训练数据的比例为 30:70。 决策:选择用于预测的活动列 并非源表中所
有的列我们都希望用于模型的构建。在选择活动列一页中,我们可以指定要用于构建模型的列。我们也可以将这个任务交给挖掘模型算法,由算法决定哪些列用于模型的计算。 在这,我们选择自己定义哪些列用于预测过程,并在“选择用于预测的活动列”一页中取消列 MONTH,USER_ID,SVC_NUM 的选中,然后进入下一步 预测器配置 在预测器配置中,我们需要指定用于预测的目标字段和算法。系统会根据目标字段选择推荐的算法,我们可以依据需要在算法列表中选择我们想要使用的算法。 我们要预测的是客户是否离网,因此我们选择表示客户状态的标识符字段 IS_LOGOUT,并采用系统推荐的算法 – 树规则。 抽取树规则 决策:对树规则进行过滤 我们可以对树规则的抽取结果进行过滤,设定条件只保存满足条件的部分结果。例如,选择只保存可信度(CONFIDENCE)处于某个区间的规则。 我们希望保存所有的树规则,因此取消对树规则进行过滤一项的选中。进入下一步 树规则:选择列 同样,抽取结果中并非所有的信息都是我们需要的,对于不需要的列我们可以取消他们的选中。 保存树规则 点击 [ 创建表 ],并指定新建表的模式和名字,如 TELE.CHURN_TREERULES,确定后系统就会根据“树规则:选择列”中选择的列生成指定的表。在树规则目标表列表中选中表 TELE.CHURN_TREERULES,并选中“删除目标表的先前内容”,点击 [ 下一步 ] 测试预测模型 测试预测模型是指将模型应用于包含模型预测目标的新数据,并将预测的目标值与实际目标值进行比较,根据比较结果,度量该模型的质量和效益。 测试器配置 测试器配置用于指定测试数据列与预测模型字段之间的映射关系。 由于我们采用了随机分割方式分割源数据,因此测试数据列与预测模型字段完全匹配,系统已自动将所有匹配的字段映射起来。直接进入下一步 决策:对测试结果进行后处理 我们可以将对模型的测试结果显示在可视化器中,也可以抽取结果并保存到表中。 使用可视化器可以更直接地查看结果,选择“在可视化器中显示测试结果” 预测模型评分 评分是指将挖掘模型应用于新数据记录以确定每个记录适合于模型的程度的过程。 决策:对原始数据还是新数据进行评分 决定使用哪些数据进行评分,以及是否在评分前对数据进行过滤。 我们选取了源表中 1 月到 4 月的数据用于模型的建立,现在我们要使用源表中 5 月和 6 月的数据应用于模型。选择“对另一个表中的数据进行评分”,并在“选择新的评分表”一页中选中表 TELE.DW_USER_COLLECT 决策:对评分表的列和行进行过滤 我们要选取 5 月和 6 月的数据,所以选择过滤不必要的行,并在“选择评分表的行”一页中添加如 表 3 的过滤条件,且选择结果表包含至少符合其中一个条件的行 评分器配置 评分器配置用于指定输入列与预测模型字段之间的映射关系。评分器已经自动设置了列名与模型字段之间的初始映射,我们可以根据需要做出适当的调整。 当前的配置完全符合我们的需求,直接进入下一步 决策:对评分结果的列和记录进行过滤 我们只对可信度大于 0.3 的记录感兴趣,选择“从评分结果中过滤出某些记录”,然后在“选择评分结果记录”一页中添加如 表 4 的过滤条件,并选择结果表包含至少符合其中一个条件的行 评分结果:选择列 选择要存储到表中的列。对于在评分结果中不需要显示的列,取消他们的选中状态。 直接进入下一步,因为我们希望所有列都存储到结果表中。 保存评分结果 点击 [ 创建表 ],并指定新建表的模式和名字,如 TELE.CHURN_SCORE 确定后系统就会根据“评分结果:选择列”中选择的列生成指定的表。在评分记录目标表列表中选中表 TELE.CHURN_SCORE,并选中“删除目标表的先前内容”,点击 [ 下一步 ] 流解决方案摘要 摘要中列出了前面步骤中的重要元素,包括问题域、问题类型、解决方案计划、用于建模源表、用于评分的源表、建模的参数设置等。 指定目标挖掘流的名称为 MF_CHURN_PREDICT,选择“覆盖现有的流”并点击 [ 创建流 ] 生成挖掘流
生成的挖掘流如图 1。执行该挖掘流,即可生成离网预测模型并得到该模型的测试质量以及新数据的评分结果。
表 1. 流解决方案问题域
问题域 描述 高级分析解决方案 用于创建挖掘流以发现数据间的关系。包括常规的关联规则、集群、预测分析等 行业解决方案 为特定行业业务问题创建流程。当前能用于解决客户细分问题 仓库变换 创建数据流以数据变换。支持的变换包括表连接、去除重复项、数据过滤并导出到表、将表中数据复制到文件
决策过滤条件
MONTH = '200601' OR MONTH = '200602' OR MONTH = '200603' OR MONTH = '200604'
评分表过滤条件
MONTH = '200605' OR MONTH = '200606'
评分结果过滤条件
CLASS_CONFIDENCE > 0.3
图 1. 挖掘流 MF_CHURN_PREDICT
总结
本文主要介绍了如何通过 ISW 10.5 的建模向导 Flow Solution 创建数据挖掘模型。