2.6 使用数据挖掘获取商业智能
数据挖掘对查找和描述特定多维数据集中的隐藏模式非常有用。因为多维数据集中的数据增长很快,所以手动查找信息可能非常困难。数据挖掘提供的算法允许自动模式查找及交互式分析。按照第1章对商业智能的认识和对其体系结构的理解,数据挖掘是一个商业智能系统的高层应用,也是不可或缺的一部分。本节使用数据挖掘技术从福马特商店的营业数据中发现影响客户会员卡级别的因素。
2.6.1 商务需求分析
福马特商店的市场部想提高客户满意度和客户保有率。于是希望通过实行相关的市场手段来达到这些目标。其中一个方法就是对原有的会员卡方案重新进行定义,以便更好地为客户提供服务并且使所提供的服务能够更加密切地满足客户的期望。为了在重新定义新的会员卡方案前能够对以前的方案中卡的类型和客户的关系有充分认识,市场部想分析当前销售事务并找出客户人口统计信息(婚姻状况、年收入和在家子女数等等)和所申请卡之间的模式。然后根据这些信息和申请会员卡的客户的特征重新定义会员卡。
以前的会员卡有4种,分别是普通卡、铜卡、银卡和金卡,还有一些客户没有办会员卡,在销售业务数据中,每一个客户的私人信息和其所拥有的卡的级别都存储在customer表中,图2-46所示即为customer表的局部数据,从中可以看出,整个表有10 281条记录,表中除了“member_card”字段代表拥有会员卡的类型外,还有分别表示“性别”、有孩子的数量、教育程度和是否有房等一系列信息,那么这些信息中哪个与客户拥有会员卡的类型关联最大,以及影响客户会员级别的因素有哪些,这是市场部经理迫切需要知道的。
图2-46 customer表的局部数据
本节将创建一个数据挖掘模型以训练销售数据,并使用“决策树”算法在客户群中找出会员卡选择模式。
2.6.2 创建挖掘结构
数据挖掘是继OLAP之后的SSAS服务的另一大功能。因此,一般实现数据挖掘也要在一个Analysis Services解决方案的基础上进行。数据挖掘所依赖的数据可以来源于业务数据库和数据仓库,也可以来源于数据立方。本例中构建数据挖掘功能是基于本章2.3节所创建的foodmartsale AS项目和相应的数据源,其步骤如下。
(1)双击foodmartsale AS.sln解决方案文件,打开前面创建的SSAS项目在“数据挖掘”文件夹对象上右击,在弹出的快捷菜单中选择【】命令,打开数据挖掘向导。
(2)在“欢迎使用数据挖掘向导”窗口中,单击【下一步】按钮。
(3)在弹出的“选择定义方法”窗口中,选择“从现有关系数据库或数据仓库”选项,再单击【下一步】按钮。
(4)在“选择数据挖掘技术”窗口中的“您要使用何种数据挖掘技术?”选项组中,选择“Microsoft决策树”选项。如图2-47所示。可以看到,这里系统为我们提供了8种可用的挖掘算法,这些算法的具体细节将在第9章学习。此处选择的Microsoft决策树算法是一种适合预测性建模的分类算法,该算法支持离散属性和连续属性的预测。本例中需要用这种算法对客户进行分析。设置好后单击【下一步】按钮。
(5)系统弹出“选择数据源视图”窗口。默认情况下,“可用数据源视图”选项组中的“foodmartsale DW”选项为选中状态,确认后单击【下一步】按钮继续操作。
(6)在弹出的“指定表类型”窗口中,选择“customer”表旁的“事例”复选框,再单击【下一步】按钮。
(7)在弹出的“指定定型数据”窗口中,选择“member_card”列旁边的“输入”和“可预测”复选框。单击【建议】按钮,如图2-48所示,系统弹出“提供相关列建议”对话框,该对话框列出与可预测的列关系最密切的列。“提供相关列建议”对话框按照各属性与可预测属性的相关性对其进行排序。值大于0.05的列将被自动选中,以包括在模型中,如图2-49所示。单击【确定】按钮,在向导中将所选列标记为输入列并且返回“指定定型数据”窗口,单击【下一步】按钮继续操作。
图2-47 选择挖掘算法
图2-48 设置输入列和可预测列
图2-49 与可预测列最相关的列
(8)在弹出的“指定列的内容和数据类型”窗口中使用默认的设置,单击【下一步】按钮,在弹出的“完成向导”窗口的“挖掘结构名称”文本框中,键入“Customer_card”,再单击【完成】按钮。系统将打开数据挖掘设计器,显示刚刚创建的“Customer_card”挖掘结构。
2.6.3 从数据挖掘中获取有价值的信息
挖掘结构创建完毕后,可以直接单击“数据挖掘设计器”窗口中的“挖掘模型查看器”选项卡,如图2-50所示。由于在查看挖掘结果之前,需要对模型进行处理和部署,因此切换到此选项卡时会弹出一些窗口来确认对模型的处理和部署,单击“确定”按钮即可。成功处理挖掘模型后,挖掘模型查看器即会显示出图2-50所示的设置项。设置其背景为“golden”,显示级别为2,则在决策树显示窗格中会显示如图2-51所示的决策树,这就是用决策树这种算法对福马特商店的客户数据进行挖掘的结果。
图2-50 挖掘模型查看器的设置项
同时,在整个工作窗口的右下角有如图2-52所示的“挖掘图例”窗格,单击决策树上的不同分支,不同类型的卡在这个分支上出现的概率和相应的颜色都在此窗格中标识出来了。
下面分析从这个挖掘结果中能得到的商业信息。
图2-51 用决策树算法挖掘的结果
图2-52 决策树上分支的图例和不同的值出现的概率
在决策树显示区域中,颜色代表“事例”的密度,在例中即代表满足相关条件的客户的密度。颜色越深则节点中包含的事例就越多。 从图2-51可以发现,“Yearly Income =$150K+”这一节点的密度高于其他任何节点,代表符合“Yearly Income = $150K+”这一条件的金卡客户是最多的。
根据决策树上的“全部”节点,“挖掘图例”窗格会有如图2-52所示的显示数据,这表明总共抽样的数据有10 281条,其中铜卡用户最多,占了55.42%。
树的第一个级别由“yearly income”属性决定。树的组织由算法决定,其基础是该属性在输出中的重要性。这意味着“yearly income”属性是最重要的因素,它将决定客户可能选择的会员卡的类型。选择“Yearly Income = $150K+”节点。该特性窗格显示收入较多的客户中,45.98% 的客户可能会选择金卡。这个百分比要比“全部”节点中的(11.67%)高得多。
可以通过改变图2-51的“显示级别”滑块的值或者直接在决策树显示区域中,单击“+”或“-”号来改变决策树显示分支的层级。当用这种方法在树中做进一步调查时,可以探索到金卡客户的百分比是如何演化的。
打开“Yearly Income = $150K+”节点,如图2-53所示。选择颜色很深的“Marital Status不等于S”节点。在“挖掘图例”窗格中,可以看到收入高于150 000美元且已婚的客户中,较高百分比(83.54%)的客户可能会选择金卡。而同时“Marital Status =S”节点的颜色非常浅,这意味着这些客户选择金卡的可能性非常小。
图2-53 “Yearly Income = $150K+”节点展开图
另一方面,从图2-52还可以看到“Yearly Income = $10K-$30K”节点的颜色非常浅,这意味着这些客户选择金卡的可能性非常小。“挖掘图例”窗格显示在此年收入范围内的客户中,92.47% 的客户可能会选择普通卡。树还显示已无法对此节点进行进一步调查,这意味着在树的这个分支中,年收入是决定客户选择普通卡可能性的唯一因素。
将挖掘模型查看器切换到“依赖关系网络”选项卡,可以看到如图2-54所示的界面,这是和“Member Card”的属性关联的客户属性依赖图,通过拖动左边的滑块,可以发现,“Yearly Income”的确是影响会员卡类型的最重要的因素。
图2-54 Member Card依赖关系网络
有了以上信息,市场部就可以确定最可能选择某种类型卡的客户的特征。根据这些特征(收入、子女数和婚姻状况等),可以重新定义会员卡的服务和方案以便更好地适应其客户。
到此为止,本章按照商业智能体系结构完成了从业务数据库到智能决策的整个过程,其间涉及到一些重要的技术,比如OLAP分析和数据挖掘等,只有对此深刻理解才能深入基于SQL Server 2005的BI应用,在后面的章节中,将会以商业智能体系结构为框架,详细讲述这些技术。