图 1. 示例交易
图 2. 交易表
图 3. 规则表
图 10. Edit Argument 对话框打开时的 Query Subject Definition 对话框
图 11. Report Studio
图 12. 零售关联规则的最终报告
图 7. 在 Design Studio 内部署 ASSOC_PROC 存储过程
图 8. Cognos 8 Framework Manager
图 9. 关系定义对话框
图 4. 用于动态挖掘的用户定义组合函数
使用 InfoSphere Warehouse 创建复杂的挖掘存储过程
首先,必须创建复合挖掘逻辑。InfoSphere Warehouse 包含了 Mining Editor,可用来图形式地设计挖掘流(挖掘命令的序列)。它们可以在 DesignStudio 内执行,也可以被部署到 InfoSphere Warehouse Administration Console 以便定时运行。但是由于所有挖掘操作都基于的是 SQL,所以,也可以从挖掘流生成一个 SQL 脚本(不包括某些操作符,比如 Mining Visualizers 和 Text analytics,它们没有包含在此数据内)。像 Association Operator 和 Rules Extractor(用在如下的例子中)这样的挖掘操作符均被转变为 SQL。Mining Editor 的 “Generate SQL Code” 命令生成代表挖掘流的 SQL DDL 并被包括在存储过程内,挖掘流的结果表作为此存储过程的结果返回。以下的示例向您展示了这一点是如何做到的。
创建复合挖掘逻辑之后,下一个任务是创建、部署并测试想要创建的这个 SQL 存储过程。InfoSphere Warehouse DesignStudio 包含了 Data Development 项目的 Data 透视图,提供了对 Java 和 SQL 存储过程以及用户定义函数创建的支持。由向导负责创建一个模板存储过程,而您则可直接从 DesignStudio 对之进行部署和测试。
下面的示例显示了如何创建挖掘流程,同时创建关联模型并从中提取规则。之后,了解如何从此流程创建 SQL 代码。在下一步中,这种方法被用来从这些 SQL 代码创建一个存储过程。我们会将输入参数添加到这个存储过程以便之后在 Cognos Report 内设置,我们还要参数化所创建的这个挖掘模型。这些从关联模型中提取出来的规则由此存储过程返回并导入到 Cognos 作为查询主题。最后,我们还要学习如何创建一个简单的 Cognos 报告来显示产品的收入列表和允许穿透钻取这些产品的相关关联规则。
使用 Cognos Report 内的动态数据挖掘结果:一个来自零售业的示例
这个示例中,我们将对零售交易数据进行市场购物篮分析。数据代表的是来自某个零售店的市场购物篮(交易)。第一个表中包含用来标识单个市场购物篮的交易 ID 以及产品 ID。要获得有意义的结果,需要为产品 ID 应用一个名称映射表。
在 InfoSphere Warehouse 自带的示例中可以找到此表。要将此表导入数据库:
打开 DB2 命令窗口
进入 InfoSphere Warehouse 的安装目录
导航到 SQLLIB\samples\dwe\ModelingDB2 子目录
连接到工作数据库(在本示例中,为示例数据库 DWESAMP: db2 CONNECT TO DWESAMP)
执行 db2 -tvf retailImport.db2 命令将此示例表导入到用户模式(在我们的示例中,这被叫做 IMINER)
再创建一个新模式,即 ASSOC,通过 db2 CREATE SCHEMA ASSOC 命令可将其用在后面的示例中
此次分析的目的是提取表单的关联规则:
Toy car + flash light => Battery (support: 3%, confidence: 83%)
上述的规则表明了在玩具汽车和手电筒的购买案例中,有 83% 的顾客还同时购入了电池。购买了所有这几样产品的情况占所有购物篮的 3%(也即 support)。
规则并不是预先计算的,计算由 Cognos 报告触发。在本示例中,有一个针对每个产品的收入列表,借助它就能够穿透钻取特定产品的关联规则。此外,还可以定义这些规则的最小 support 及长度。之后,根据需要,对这些规则继续计算并通过另一个报告返回给用户。比如,这些规则可被用来进行商店内的产品的合理摆放以提高营业收入。
在 InfoSphere Warehouse DesignStudio 中创建关联规则
首先,必须创建一个关联规则模型,该模型被存储为 PMML,从中可以提取这些规则并将其放入一个数据库表以供日后的 Cognos 访问。要获取更多关于 PMML 的信息,请参考 PMML 标准 Web 站点。
创建一个 Data Warehouse 项目:
在 Project Explorer 中,单击右键并选中 New > Data Warehouse 项目,如图 5 所示。
图 5. 创建一个 Data Warehouse 项目
图 6. Design Studio 中的挖掘流