• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

使用MDX实现多维关联分析

发布: 2007-7-02 11:08 | 作者: admin | 来源: | 查看: 10次 | 进入软件测试论坛讨论

领测软件测试网
在经过了痛苦的数据仓库与OLAP基础知识学习之后,在老板的声声催促下,小心翼翼地创建了数据仓库,设计了通用分析型的OLAP分析界面。

于是心中暗喜“哈哈,可以交差了。”,因为按照《需求说明书》里列出的功能项,均已实现。拿着这个产品来到客户方演示之后,客户连说

了几个“No”(怎么能这样呢,一点面子都不给?好歹我从一个数据仓库的文盲到做出这个产品也花费了不少的时间呀)。接下来,客户提出

了几个要求,要对数据进行智能分析,具体的要求可能就像诸位曾经经历或正在经历的一样吧。好吧,就让我试试去做智能分析。
首先,我们来完成关联分析。对了,我记得数据挖掘原理中介绍了关联分析,经过一段时间的苦读与试验,这个购物篮的例子还是没有带给我

多少启发?我用的是AS,里面只有两个数据挖掘算法呀:决策树与聚类。我不太清楚这两个算法与关联分析如何联系在一起。接下来的几日,

我就在查找与阅读数据挖掘及关联分析中渡过(有点浪费时间吧,不过老板不愿意花钱请一个老手来做这个项目,没有办法,只有摸着石头过

河了)。这天,我痛苦得终于放下数据挖掘方面的书籍,重新打开AS帮助文档,一边阅读着MDX部分,一边在自制的MDX查询分析器里做着试验

。突然灵机一动,为什么不试试用MDX来实现分析呢?说干就干,一番试验下来之后,嘿嘿,还真成功了。下面说是我的成功步骤:
还是先说说数据仓库的结构吧:
SampleCube
--Dim1
----Dim1Hier1
------Dim1Lev1
------Dim1Lev2
------...
----Dim1Hier2
--Dim2
----Dim2Hier1
-------Dim2Lev1
-------Dim2Lev2
----Dim2Hier2
...
--measures
----Sum1
接下来,定义关联分析中的支持度--可信度指标;用MDX的with子句来实现
要实现Dim1.Dim1Lev1与Dim2.Dim2Lev1的关联分析,定义如下:
with
  member [measures].[Dim1Lev1Sup] as @#([Dim1].[Dim1Hier1].[Dim1Lev1].CurrentMember, [Dim2].[Dim2Hier1].[所有 Dim2],

[Sum1])/([Dim1].[Dim1Hier1].[所有 Dim1], [Dim2].[Dim2Hier1].[所有 Dim2],[sum1])@#
  member [measures].[Dim2Lev1Sup] as @#([Dim2].[Dim2Hier1].[Dim2Lev1].CurrentMember,[Dim1].[Dim1Hier1].[所有

Dim1],[Sum1])/([Dim2].[Dim2Hier1].[所有 Dim2], [Dim1].[Dim1Hier1].[所有 Dim1], [Sum1])@#
  member [measures].[置信度] as @#([Dim1].[Dim1Hier1].[Dim1Lev1].CurrentMember,

[Dim2].[Dim2Hier1].[Dim2Lev1].CurrentMember,[Sum1])/([Dim1].[Dim1Hier1].[所有 Dim1], [Dim2].[Dim2Hier1].[所有 Dim2], [Sum1])@#
然后用select语句实现分析,设Dim1Lev1Sup的最小支持度为5%,Dim2Lev1Sup的最小支持度为1%,实现强关联分析(即置信度大于1).
select {[measures].[Sum1],[置信度], [measures].[Dim1Hier1Sup], [measures].[Dim2Hier1Sup]} on columns, 

order(filter({[Dim1].[Dim1Hier1].[Dim1Lev1].Members * [Dim2].[Dim2Hier1].[Dim2Lev1].Members},[measures].[Dim1Lev1Sup] > 0.05

and [measures].[Dim2Lev1Sup] > 0.01 and ([置信度]/([measures].[Dim1Lev1Sup]* [measures].[Dim2Lev1Sup]) >  1)), [Sum1], bdesc)

on rows from SampleCube

这样强关联分析算法就实现了。
以上为个人心得,如有更好的实现方法,请回复告之。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网