OLAP建模巅峰之旅

来源:互联网 发布:ubuntu给文件夹重命名 编辑:程序博客网 时间:2024/04/24 12:09

—— 数据挖掘经典案例

 

当前,市场竞争异常激烈,各商家企业为了能在竞争中占据优势,费劲心思。使用过OLAP技术的企业都知道,OLAP技术能给企业带来新的生机和活力。OLAP技术把企业大量的数据变成了客户需要的信息,把这些信息变成了价值,提高了企业的产值和效益,增强了客户自身的竞争实力。

“啤酒与尿布”的故事家喻户晓,在IT界里,几乎是数据挖掘的代名词,那么各商家企业受了多少启发,数据挖掘又给他们带来了多少价值呢?

客户需求

    客户面对大量的信息,用OLAP进行多维分析。如:一个网上书店,用OLAP技术可以浏览到什么时间,那个类别的客户买了多少书等信息,如果想动态的获得深层次的信息,比如:哪些书籍可以打包推荐,哪些书籍可以在销售中关联推出等等,就要用到数据挖掘技术了。

当客户在使用OLAP技术进行数据的多维分析的时候,联想到“啤酒与尿布”的故事,客户不禁会有疑问,能不能通过数据挖掘来对数据进行深层次的分析呢,能不能将数据挖掘和OLAP结合起来进行分析呢?

SQL Server 2005 数据挖掘:

SQL Server 2005Data MiningSQL Server2005分析服务(Analysis Services)中的一部分。数据挖掘通常被称为从大型数据库提取有效、可信和可行信息的过程。换言之,数据挖掘派生数据中存在的模式和趋势。这些模式和趋势可以被收集在一起并定义为挖掘模型。挖掘模型可以应用于特定的业务方案,例如:预测销售额、向特定客户发送邮件、确定可能需要搭售的产品、查找客户将产品放入购物车的顺序序列。

Microsoft 决策树算法、Microsoft Naive Bayes 算法、Microsoft 聚类分析算法、Microsoft 神经网络算法 (SSAS),可以预测离散属性,例如,预测目标邮件活动的收件人是否会购买某个产品。

Microsoft 决策树算法、Microsoft 时序算法可以预测连续属性,预测连续属性,例如,预测下一年的销量。

Microsoft 顺序分析和聚类分析算法预测顺序,例如,执行公司网站的点击流分析。

Microsoft 关联算法、Microsoft 决策树算法查找交易中的常见项的组,例如,使用市场篮分析来建议客户购买其他产品。

Microsoft 聚类分析算法、Microsoft 顺序分析和聚类分析算法,查找相似项的组,例如,将人口统计数据分割为组以便更好地理解属性之间的关系。

巅峰之旅之案例一:网上书店关联销售

提出问题

网上书店现在有了很强的市场和比较固定的大量的客户。为了促进网上书店的销售量的增长,各网上书店采取了各种方式,给客户提供更多更丰富的书籍,提供更优质服务,等方式吸引更多的读者。

是不是这样就够了呢?这里,给众多网上书店的商家们提供一种非常好的促进销售量增长,吸引读者的方法,就是关联销售分析。这种方法就是给客户提供其他的相关书籍,也就是在客户购买了一种书籍之后,推荐给客户其他的相关的书籍。这种措施的运用给他们带来了可观的效益。

首先必须明确的是,这里介绍的关联销售并不是,根据网上书店的销售记录进行的比例统计,也区别于简单的概率分析统计,是用的关联规则算法。“啤酒和尿布”的故事足以证明了该算法的强大功能和产生的震撼效果。

那么,怎么来实现这样一个效果呢?

解决步骤

首先,我们有数据源,也就是销售记录。这里我们做数据挖掘模型,要用到两张表,一张表是我们的会员,用会员ID号来代替;另一张表是我们那个会员买了什么书。表结构是这样的:

1111111111

Dreamweaver UltraDev 网页编程不求人

2222222221

笑傲江湖之东方不败(2VCD                                                                         

2222222221

侠客行(20VCD                                                                                     

3333333331

爱德华大夫(2VCD                                                                                 

……

            ……

1111111111

2222222221

3333333331

4444444441

……

 

 

 

 

 

 

1User                                  2Sales

我们应用SQL Server 2005Data Mining工具,建立数据挖掘模型。

具体步骤如下:

第一步:定义数据源。选取的为网上书店的销售记录数据源(最主要的是User表和Sales表)。

第二步:定义数据源视图。在此我们要建立好数据挖掘中事例表和嵌套表,并定义两者之间的关系,定义User为事例表(Case Table),Sales为嵌套表(Nested Table)。

第三步:选取Microsoft Association Rules(关联规则)算法,建立挖掘模型,如图2所示。

        2

第四步、设置算法参数,部署挖掘模型。

第五步、浏览察看挖掘模型。对于关联规则算法来说,三个查看的选项卡。

A:项集:项集选项卡显示被模型识别为经常发现一起出现的项集的列表。在这里指的是经过关联规则算法处理后,发现关联在一起的书籍的集合。

B:规则:规则选项卡显示关联算法发现的规则。规则选项卡包含一个具有以下列的网格:概率重要性规则。概率说明出现规则结果的可能性。重要性用于度量规则的用途。尽管规则出现的概率可能很高,但规则自身的用途可能并不重要。重要性列就是说明这一情况的。例如,如果每个项集都包含属性的某个特定状态,那么,即使概率非常高,预测状态的规则也并不重要。重要性越高,规则越重要。

C:关联网络:节点间的箭头代表项之间有关联。箭头的方向表示按照算法发现的规则确定的项之间的关联。(如图3所示)

 

3

效果展示

1、我们可以看到在上图中,绿色的是我们选择的节点,橙色的是可以预测所选节点的节点,也就是说如果消费者买了《月光宝盒(2VCD)》的话,那么我们可以给该消费者推荐《乱世佳人(上集,2VCD)》。紫色的是和所选节点能够双向预测的,即买了《大圣娶亲》,推荐《乱世佳人(上集,2VCD)》;同样,买了《乱世佳人(上集,2VCD)》,推荐《大圣娶亲》。这样我们就很容易看到经过关联算法计算出来的书籍之间的关联性。如图3所示效果。

2、我们也可以通过写DMX语句来实现预测查询。

SELECT

            PredictAssociation([User].[Sales],include_statistics,10)

From

            [User]

NATURAL PREDICTION JOIN

(SELECT (SELECT '月光宝盒(2VCD)' AS [Book Name]) AS [Sales]) AS t

    得到的结果集为:

Book Name

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

大圣娶亲(2VCD)

1317

0.87038556193601313

0.808528777744521

大内密探零零发(2VCD)

171

0.036915504511894993

0.70703986292265841

九品芝麻官(2VCD

146

0.036095159967186222

0.72088234353047576

千王之王20002VCD

156

0.031173092698933553

0.69897383219632625

百变金刚(2VCD

150

0.031173092698933553

0.70308386697860481

唐伯虎点秋香(2VCD

106

0.026251025430680888

0.72105472823528116

97家有喜事(2VCD

104

0.021328958162428219

0.70169949360837691

武状元苏乞儿(2VCD

89

0.021328958162428219

0.71774047845428846

情圣(2VCD

50

0.010664479081214109

0.70578797816779937

龙的传人(2VCD

34

0.0090237899917965554

0.72796424163686613

表3:数据挖掘预测结果集Result

Book Name就是书籍的名字,$SUPPORT是在我们的结果集众,出现《月光宝盒(2VCD)》之后,又购买《大圣娶亲(2VCD)》的次数是1317$PROBABILITY是出现的相关性强度,$ADJUSTEDPROBABILITY是修正后的相关性强度。这样,我们就可以按照挖掘信息,给客户推荐相关的书籍了。

巅峰之旅之案例二:客户类别销售分析

这个案例的前提是我们已经建立好了一个OLAP的多维数据库Sales,事实表为FactInternetSales,有 五个维度,分别是DimCurrencyDimCustomerDimProductDimTimeDimPromotion。(多维数据库的结构如图4所示)

 

4

提出问题

利用OLAP建立的多维数据库Sales,我们可以实现多角度的浏览和分析。例如:我们可以分析2004年第一季度的M生产线产品的销售量情况,还可以实现灵活的交叉分析,等等。但是,如果我们要分析,某个维度的多个属性的综合的销售量,例如:客户维度里有Birth DateEnglish EducationHouse Owner FlagNumber Cars OwnedYearly Income等属性,在多维数据库里面分析的时候,

我们可以把客户维度的Number Cars Owned属性放在展示区域的行上,把度量值Order Quantity放在列上,查看拥有0-4辆汽车的客户的订购所有产品的数量。同样,我们也可以类似的查看其他属性的情况。但是,如果我们要把客户维度的某些属性综合考虑来分类,例如:我们要把高收入、高学历、高消费的客户作为一个群体,把高收入,低学历、高消费的客户作为一个群体,等等,然后,基于这些群体来浏览分析,销售情况,如何来实现呢?

解决步骤

用过聚类算法的大概比较清楚,聚类算法,是用来给事物分类的。那么怎么用聚类算法的这个特性,和OLAP进行正和呢。请看下面这个案例:

第一步:建立挖掘模型。这里需要注意的是:以前我们在建立数据挖掘模型的时候是基于关系型数据源。

A:而在这里,我们要基于多维数据库Sales,选取维度DimCustomer为数据挖掘模型的数据源。

B:按照向导,选取事例键Dim Customer

C:在选取事例级别列对话框里面,选择一些属性和度量值,我们这里选取English EducationHouse Owner FlagNumber Cars OwnedYearly IncomeSales Amount。如图5所示。

D:在完成对话框里面,我们输入挖掘结构名称CustomerSturcture,输入挖掘模型名称CustomerClustering。必须注意的是,一是一定要选择创建挖掘模型维度,输入挖掘模型维度的名称CustomerClustering;二是一定要选择使用挖掘模型维度创建多维数据集Sales_DM

E:设置算法参数。

然后对创建的挖掘结构和挖掘模型进行处理。

 

5

此时,共享维度里面会自动添加了一个CustomerClustering维度,也就是数据挖掘维度。

第二步:处理CustomerClustering维度。

第三步:处理多维数据集Salse_DM

处理后的多维数据集Sales_DM,就包含了数据挖掘维度CustomerClustering。这样,我们就可以把经过聚类算法分类后的客户维度,来进行多维数据分析。如图6所示。

 

6

效果展示

这些Cluster是我们用聚类算法建立的挖掘模型的维度成员,每个Cluster都是我们所选属性的一个综合的结果,但是代表着一个明显的特征。我们还可以在数据挖掘模型里面,对各个Cluster进行名称的标示,如Cluster 1是高收入高消费高学历的群体,我们就可以给他命名,把所有的Cluster都命名为能代表本身特性的名称,这样,使得多为数据库的信息就更丰富了。

总结

在激烈的市场竞争中,要想把海量的数据转化为信息,提高自身的信息化建设水平,增强企业的核心竞争力,BI技术是您明智的选择。应用OLAP技术建立多维数据库,进行多维分析,并把数据挖掘算法应用于多维数据库中,会进一步增加信息量,让您掌握更多的市场先机。祝您成功!

原创粉丝点击