基于数据立方体的属性核计算方法
【计算机科学】_高维数据分析_期刊发文热词逐年推荐_20140724

推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2013年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
科研热词 集成学习 诱导核空间 聚类 维数约简 离群点检测 模型选择 核混合鉴别分析 核方法 数据立方体 数据概要 数据挖掘 情感分析 局部敏感哈希 基于内容图像检索 商品评论 分布式索引 信息熵 svm subspace random pair copula olap近似查询 c藤
推荐指数 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2010年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
科研热词 高维数据 主成分分析 预处理 邻域粗糙集 软子空间算法 网格划分 维度灾难 稀疏低秩逼近 相似度量 支持向量机 成对约束 属性约简 局部保持投影 子空间差异 子空间 图核 图分类 图像检索 双边判别框架 半监督降维 zernike矩 schur分解 k均值
பைடு நூலகம்
推荐指数 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2011年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011年 科研热词 高斯图模型 彩色纹理分类 变量选择 l1-惩罚正则化 高维数据 频繁项集 非线性降维范畴 隐私保护 随机投影 范畴理论 聚类融合 聚类算法 维度约减 线性降维范畴 粗糙集 稀疏数据 特征提取 流形学习 模糊集 概化 最大边界准则 数据降维 数据发布 局部保持投影 存储结构 商空间理论 信息粒度 信息度量 保局投影 人脸识别 k-匿名 推荐指数 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
基于数据立方体分块的多维关联规则挖掘

多 维关 联规则 是 指在 各 个 属 性维 之 间存 在 的关联 规 则 。对 于维 内关 联 规 则 的挖 掘 , 已经研 究 得 比较 多 ,
而 对 于多维 关联 规则挖 掘 的研 究 相对来说 要少得 多 。
收稿 日期 :060 -3 2 0 -4 0
些有益 的尝试 , 在此 , 将这 些过程 论述 出来 , 为对 此项 研究 有兴趣 的 同行 提供一 些可供 参考 的 资料 。
这些数据中某类内含的模式可信度较高 , 而另外一些 内含 的则 较低 。如 果将 这 些 数据 混 在一 起进 行 关 联
规 则挖掘 , 获得 的结 果 不 一定 令 人 满 意 , 而将 不 同可
对数据进行组织 、 存贮 、 分析和处理 的新方法 , 当前 ,
《数据挖掘》教学大纲

《数据挖掘》教学大纲一、课程的性质、目的与任务数据挖掘是综合了机器学习、统计和数据库的一门现代计算机技术,旨在发现海量数据中的模型与模式,具有巨大的应用前景。
在很多重要的领域,数据挖掘都发挥着积极的作用。
因此这门课程是计算机专业及相关专业的重要课程之一。
《数据挖掘》课程是计科专业与软工专业的专业任选课程,通过本课程的学习使学生掌握数据挖掘的基本概念,了解数据挖掘的定义和功能以及实现数据挖掘的主要步骤和具体实现方法,初步掌握数据挖掘的算法。
使同学们在学习本课程后,能实现简单的数据挖掘算法编程,了解实现数据挖掘的具体操作。
通过本课程的学习,要求学生达到:1.了解数据挖掘技术的整体概貌2.了解数据挖掘技术的主要应用及当前的研究热点问题和发展方向3.掌握最基本的概念、算法原理和技术方法二、课程教学基本内容与要求第一章引言(一)基本教学内容1.1什么激发了数据挖掘,为什么它是重要的1.2什么是数据挖掘1.3对何种数据进行挖掘1.4数据挖掘功能——可以挖掘什么类型的模式1.5所有模式都是有趣的吗1.6数据挖掘系统的分类1.9数据挖掘的主要问题(二)基本要求教学目的:掌握数据挖掘的基本概念、理解数据挖掘的形成与发展过程、了解数据挖掘的数据对象、了解数据挖掘所具有的功能。
教学重点:重点讲解数据挖掘的功能教学难点:数据挖掘功能第二章数据预处理(一)基本教学内容2.1 为什么要预处理数据2.2 描述性数据汇总2.3 数据清理2.4 数据集成和变换2.5 数据归约2.6 数据离散化和概念分层产生(二)基本要求教学目的:了解数据预处理的原因,掌握数据预处理的方法。
教学重点:数据清理、数据集成和变换、数据归约、数据离散化和概念分层教学难点:数据归约、数据离散化和概念分层第三章数据仓库与OLAP技术概述(一)基本教学内容3.1 什么是数据仓库3.2 多维数据模型3.3 数据仓库的系统结构3.4 数据仓库实现3.5 从数据仓库到数据挖掘(二)基本要求教学目的:理解数据仓库的概念,了解数据仓库的多维数据模型,理解数据仓库的系统结构,掌握数据立方体的有效计算。
基于数据脑的神经图像元数据立方体构建技术

和数据共 享 的基础 上 , 实现面 向系统 化研 究的管 理 , 即支持 来 自于 系统 化脑 信息学研 究 不同侧 面的多 样化
第2卷 9
第 1 期
广 西师范 大学学 报 : 自然科 学版
J un l f u n x Noma Unvri : aua S i c dt n o ra o ag i r l ies y N trl c n eE io G t e i
V o1 29 N o.1 .
略 , 而难 以满足整 合多 种实验 研 究和 数 据分析 研 究的系统 化脑 信息学 研究 的需要 ; 因 其次是 信 息组织形 式 过 于单 一 。 当前 的神经 图像元 数据 大都 以关 系数据库 或 X ML等文 件形式 存储 。 其数 据信 息组 织形式 固化
为 特 定的数 据库 或文 件 的概 念模式 , 因而 只能满 足 以维护数 据 和支持 单 数据 源分 析为 目的 的操作 型 数据
神经成 像技 术是脑 科学研 究 的一项 核心技 术 , 涉及多 种脑结 构和 功能 的计测手 段 。 其所 生成 的多种类
型 的神经 图像 数 据是 最重 要 的人 脑 研 究数据 之 一 , 需要 面 向不 同的 人脑 研 究需 要 , 现多 样 化 的数 据管 实 理 。神经 图像 数据 库 已成为脑 科学 领域 的一个 重要研 究课 题 。由于其 存储 的大 多为特 殊格式 的多媒 体数
数据挖掘考试题库

1 数据清洗:包括填充空缺值,识别孤立点,去掉噪声和无关数 据。
13. 预测型知识:是根据时间序列型数据,由历史的和当前的数据 去推测未来的数据,也可以认为是以时间为关键属性的关联知 识。
14. 偏差型知识:是对差异和极端特例的描述,用于揭示事物偏离 常规的异常现象,如标准类外的特例,数据聚类外的离群值 等。
15. 遗传算法:是一种优化搜索算法,它首先产生一个初始可行解 群体,然后对这个群体通过模拟生物进化的选择、交叉、变异 等遗传操作遗传到下一代群体,并最终达到全局最优。
融合、决策支持等。 数据挖掘的功能包括:概念描述、关联分析、分类与预测、聚
类分析、趋势分析、孤立点分析以及偏差分析等。 2. 何谓数据仓库?为什么要建立数据仓库?
数据仓库是一种新的数据处理体系结构,是面向主题的、集成 的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集 合,为企业决策支持系统提供所需的集成信息。
当前数据
历史数据
经常更新
不更新,但周期性刷新
一次性处理的数据量小 一次处理的数据量大
对响应时间要求高
响应时间合理
用户数量大
用户数据相对较少
面向操作人员,支持日 面向决策人员,支持管
常操作
理需要
面向应用,事务驱动 面向分析,分析驱动
5. 何谓粒度?它对数据仓库有什么影响?按粒度组织数据的方式 有哪些? 粒度是指数据仓库的数据单位中保存数据细化或综合程度的级
2、 判断题 ( )1. ( )2. ( )3. ( )4. ( )5. ( )6. ( )7. ( )8. ( )9. (
基于数据立方体的多层关联规则的挖掘

链 s h m t . ‘ s 曲 t Q ‘3 船
本文研 究 了多层 关联 规 则 中项 目、项 目集合 和 支持 度 等概 念 在 数据 立 方体 中 的 具体 含 义 ,提 出 了一 种 全 面 的 、 易 于 理 解 和 使 用 的 基于 数据 立 方体 的 多层 关联 规 则形 式化描 述 方 法 ,并设 计 了一种 适合 于数据 立 方体 的 多 层 频繁 项 目集合 生成 算 法G e n H J b F r e q 。实验 表 明 该算 法在 灵活 性 、可伸 缩性和 效率 方 面有 很好 的表现 。
设3 ~项 目集 合 x一: ( a g e , 【 2 0 , 2 9 】 ) ,
( i nc om e, I 4 0k, 4 9k 1 ) , ( bUy S, COl O r
P r i nt e r ) ,P r ( X) =F ( a g e =【 2 0 , 2 9 】 , i 1 2 C O me =[ 4 0 k, 4 9 k1 ,bU Y S =C O l O r P r i n t e r = 2 ,即原事 务数 据库 中共有 2 条事 务 包 含 项 目集 合x中所 有项 目 ,如 图1 ( C )所
D O I :1 0 . 3 9 6 9 /j . i s s n . 1 0 0 1 - 8 9 7 2 . 2 0 1 3 . 0 8 . 0 5 2
基金项 目:徐州医学院院课题( 自然科学类) 项 目( 2 0 1 2 K J 2 3 )
基于数据立方体 的多层关联规则的挖掘
郝 杰 聂 亚 平 徐 州 医 学 院 医 学信 息 学 院 , 江 苏徐 州 2 2 1 0 0 8
不 。
数据仓库与数据挖掘教程(第2版)课后习题答案 第三章
第三章作业1.联机分析处理(OLAP)的简单定义是什么?它体现的特征是什么。
P40联机分析处理是共享多维信息的快速分析。
它体现在四个特征:(1)快速性(2)可分析性(3)多维性(4)信息性2.OLAP准则中的主要准则有哪些?P41(1)多维概念视图(2)透明性(3)可访问性(4)一直稳定的报表性能(5)客户/服务器体系结构(6)维的等同性(7)动态的系数矩阵处理(8)多用户支持能力(9)非限定的跨维操作(10)直观的数据操作(11)灵活的报表生成(12)不受限制的维和聚集层次3. 什么是维?关系数据库是二维数据吗?如何理解多维数据?P43维是人们观察数据的特定角度。
关系数据库不是二维数据,只是通过二维关系表示了数据的多维概念。
多维数据就是从多个特定角度来观察特定的变量。
4.MDDB(Multi Dimensional Database, 多维数据库)是以多维的方式组织数据,即以维作为坐标系,采用类似于数组的形式存储数据。
RDBMS(relational database management system,关系型数据库管理系统)通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据MDDB特点:1.数据库中的元素具有相同的数值2.多维数据库表达清晰,3.占用存储少RDBMS的特点:1.数据以表格的形式出现2.每行为各种记录名称3.每列为记录名称所对应的数据域4.许多的行和列组成一张表单5.若干的表单组成database5.1.数据存取速度ROLAP服务器需要将SQL语句转化为多维存储语句,临时“拼合”出多维数据立方体。
因此,ROLAP的响应时间较长。
MOLAP在数据存储速度上性能好,响应速度快。
2.数据存储的容量ROLAP使用的传统关系数据库的存储方法,在存储容量上基本没有限制。
MOLAP通常采用多平面叠加成立体的方式存放数据。
当数据量超过操作系统最大文件长度时,需要进行数据分割。
多维数据库的数据量级难以达到太大的字节级。
大型压缩数据仓库上的Iceberg+Cube算法
ISSN 1000-9825, CODEN RUXUEW E-mail: jos@Journal of Software, Vol.17, No.8, August 2006, pp.1743−1752 DOI: 10.1360/jos171743 Tel/Fax: +86-10-62562563© 2006 by Journal of Software. All rights reserved.∗大型压缩数据仓库上的Iceberg Cube算法骆吉洲+, 李建中, 赵锴(哈尔滨工业大学计算机科学与技术学院,黑龙江哈尔滨 150001)An Iceberg Cube Algorithm for Large Compressed Data WarehousesLUO Ji-Zhou+, LI Jian-Zhong, ZHAO Kai(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China)+ Corresponding author: Phn: +86-451-86415280 ext 20, E-mail: luojizhou@,/~luojizhouLuo JZ, Li JZ, Zhao K. An Iceberg Cube algorithm for large compressed data warehouses. Journal ofSoftware, 2006,17(8):1743−1752. /1000-9825/17/1743.htmAbstract: Iceberg Cube is meaningful for OLAP (on-line analysis processing) and compression techniques playmore and more important role in reducing the storage of data warehouse and improving the efficiency of dataoperations. It is really a problem to compute Iceberg Cube efficiently in the compressed data warehouse. Thecompression techniques of data warehouse are introduced concisely in this paper, and an algorithm to computeIceberg Cube in compressed data warehouse by mapping-complete methods is proposed. Experimental results showthat this algorithm outperforms the direct method that selects Iceberg Cube tuples from the complete computedcube.Key words: Iceberg Cube; compressed data warehouse; data cube; bottom-up computation摘要: Iceberg Cube操作是OLAP(on-line analysis processing)分析中的一种重要操作.数据压缩技术在有效减小数据仓库所需的数据空间和提高数据处理性能方面的作用越来越明显.在压缩的数据仓库上,如何快速、有效地计算Iceberg Cube是目前亟待解决的问题.简要介绍了数据仓库的压缩,然后给出了在压缩数据仓库中计算Iceberg Cube的算法.实验结果表明,该算法的性能优于先在压缩数据上计算Cube再检查having条件这种方法.关键词: Iceberg Cube;压缩数据仓库;数据立方体;自底向上计算中图法分类号: TP311文献标识码: AOLAP(on-line analysis processing)分析是数据仓库的主要应用,其中最重要的操作是Cube操作.Cube操作是group by操作的推广,一个完整的Cube操作是对数据集合中的n个属性的任意组合计算其group by操作的结果,一个基本的group by操作称为一个cuboid,2n个group by操作的结果的并称为数据立方体(data cube).Cube操作的基本问题是快速而有效地计算完整的数据立方体.文献[1−5]给出了几个有效计算数据立方体的算法.然∗ Supported by the National Natural Science Foundation of China under Grant No.60273082 (国家自然科学基金); the NationalHigh-Tech Research and Development Plan of China under Grant No.2001AA415410 (国家高技术研究发展计划(863)); the NationalGrand Fundamental Research 973 Program of China under Grant No.G1999032704 (国家重点基础研究发展规划(973)); the NaturalScience Foundation of Heilongjiang Province of China under Grant Nos.F0208, zjg03-05 (黑龙江省自然科学基金)Received 2005-06-24; Accepted 2005-11-091744 Journal of Software软件学报 V ol.17, No.8, August 2006而一些研究者指出[5−8]:当数据集的维数和数据量增大时,计算数据立方体所需要的时间开销和空间开销都呈指数增长.为了克服这个困难,一些研究者提出了有效削减数据立方体体积的方法,如Condensed Cube[4],Dwarf Cube[5],Quotient Cube[6]和基于图结构的Free Cube[7];另一些研究者则有选择地计算并存储某些cuboid的结果或只计算和存储Iceberg Cube[7,8].简单地说,Iceberg Cube操作就是带有having条件的Cube操作,即Iceberg Cube就是在计算数据立方体时在每个基本group by操作中添加同一个having条件后计算得到的结果.Iceberg Cube除了可以削减数据立方体的体积之外,其本身在OLAP分析中也十分有用.事实上,所有cuboid组成了一个代数格[1],属性较多的cuboid 位于格的较高层次中,属性较少的cuboid位于格的较低的层次中,相邻层次的两个cuboid有偏序关系当且仅当层次较低的cuboid可以由层次较高的cuboid来计算,如后文图1(a)所示;如果Iceberg Cube中的having条件是对聚集结果的支持度进行限制,则格中层次较高的cuboid的结果很可能是原始数据,其聚集效果不明显,它们在OLAP分析中的意义也不大[7];故计算Iceberg Cube时忽略这些cuboid,既可减小存储空间又可提高OLAP分析效率.计算Iceberg Cube最直接的方法是先计算出完整的数据立方体,再用having条件过滤结果以删除不满足having条件的结果;然而,文献[7]指出这种做法的时间开销非常大.因此,很多研究者提出了直接计算Iceberg Cube的算法[7−9],最基本的算法是BUC(bottom-up computation)和TDC(top-down computation);此外,文献[9]还提出用star_cube方法来计算Iceberg Cube.另一方面,人们还引入数据压缩技术来削减大型数据仓库的空间开销[1,3,5,10−12].大型数据仓库有两种主要的存储结构:基于关系表的数据仓库(relational data warehouse,简称RDW)和基于多维数组的数据仓库(multi-dimensional data warehouse,简称MDW).当数据仓库中的数据比较稀疏且数据量非常大时,人们常采用基于多维数组的存储结构,这样做避免了对维属性的存储,极大地节省了数据仓库所需的空间[11].在压缩方法被引入数据仓库后,人们开始研究如何在压缩数据上有效地计算数据立方体.一些研究者提出了在压缩数据仓库中计算数据立方体的算法[1,3].文献[3]讨论了基于chunk_offset方法压缩的多维数据仓库上的Cube算法,该算法用大量的内存空间以流水方式同时计算多个cuboid的聚集结果,并仅在属性维较少的情况下能够获得较高的性能,其压缩方法也仅对稀疏数据立方体有效.文献[1]根据cuboid之间的前缀、中缀和后缀关系给出了启发式规则,用这些规则确定cuboid的计算次序,同时生成Cube的计算计划,然后根据计算计划读入相应的数据并利用压缩方法的特性自底向上无须解压缩地计算Cube结果;由于该方法在计算过程中无须解压缩操作,因此其性能远优于先解压缩再计算Cube这一传统方法.据我们所知,文献[1,3]是仅有的在压缩数据上计算Cube的工作,还没有人提出在压缩数据仓库中直接计算Iceberg Cube的算法.本文将在压缩的MDW中讨论Iceberg Cube的计算问题.本文第1节介绍大型数据仓库的压缩算法.第2节给出大型压缩数据仓库中直接计算Iceberg Cube的算法.第3节是实验结果.最后给出结论和需要进一步研究的问题.1 大型数据仓库的压缩数据仓库由多个多维数据集构成,一个n-维数据集可以表示为R(D1,…,D n,M1,…,M m),其中D i是维属性,M j 是度量属性.将多维数据集用多维数组存储,所得数据仓库称为多维数据仓库(MDW).本文只讨论多维数据仓库压缩及其上的Iceberg Cube算法.将n-维数据集R(D1,…,D n,M1,…,M m)转化成多维数组需要如下3个步骤:1. 用多维数组存储多维数据集合.先构建n维数组A1,…,A m,使得第i维的大小等于|D i|;设(d1,…,d n, m1,…,m m)是R(D1,…,D n,M1,…,M m)的一个元组,则用d i索引第i维,找到多维数组的一个存储位置,再将(m1,…,m m)依次存储到由该位置确定的存储单元A1,…,A m中.这种存储方式无须存储维属性值,节省了大量的空间.2. 将多维数组线性化.即选择适当的线性化函数,将多维数组线性化为一维数组.我们给出一个简单、常用的线性化函数LINEAR.设(d1,…,d n,m1,…,m m)是多维数据集的一个元组,则该元素在一维数组中的位置是LINEAR(d1,…,d n)=d1|D2|…|D n|+d2|D3|…|D n|+d n.这个简单的函数有逆函数,故我们可以由数据在一维数组中的位骆吉洲等:大型压缩数据仓库上的Iceberg Cube算法1745置来计算它在多维数组中的位置.3. 数据压缩,即选择适当的数据压缩算法来压缩线性化过程得到的数组.对这3个过程采取不同策略就得到不同的压缩算法.文献[3]提出了chunk_offset压缩方法:在步骤1之后,将每个维连续划分为若干区间(多维数据空间被划分为多个chunk);步骤2分别线性化每个chunk;步骤3对稠密chunk不作进一步压缩,仅对稀疏chunk用offset方法进行压缩.这种压缩方法对比较稀疏的多维数据集合能够取得较好的压缩效果,但对比较稠密的多维数据集合效果不明显,而且维的数值化过程会严重影响chunk的稠密性,进而影响压缩效果.文献[11]给出了一种映射完全的压缩方法,其中在步骤2中使用了前面的例子所给出的线性化函数,在步骤3中采用了称为Header的压缩技术[13].其优点在于:它存在前向函数和后向映射,根据前向映射可以由未压缩数据计算该数据在压缩数据文件中的位置,根据后向映射可由压缩数据计算该数据在原始数据集中的位置.本文所给出的Iceberg Cube算法适用于所有由映射完全的压缩技术产生的压缩数据仓库,但为了叙述方便,在行文时采用文献[11]所给出的方法来压缩数据仓库,实验也是基于这种压缩技术来实现的.该压缩方法有如下性质:定义1. 线性化函数LINEAR中采用的属性序列D1,…,D n称为线性化属性序列.命题1. 如果LINEAR中线性化属性序列D1,…,D n满足|D1|>…>|D n|,而〈a1,…,a n〉,〈b1,…,b n〉∈D1×…×D n且存在k(<n)使得当i≤k时,a i=b i且a k+1<b k+1,则LINEAR(a1,…,a n)<LINEAR(b1,…,b n).尽管其证明很简单,命题1却有着重要意义.它表明,适当选取线性化属性序列后,线性化过程相当于一个group by操作,使得元组有一定的顺序,且由于Header压缩方法使数据逻辑位置的次序与物理位置的次序保持一致,故整个压缩方法使数据的顺序与线性化后的顺序保持一致.在计算Iceberg Cube时,这个性质将被用来划分数据.命题2. 将D1×…×D n中的元组a=〈a1,…,a n〉投影去掉维D k(1≤k≤n)得到D1×…×D k-1×D k+1×…×D n中的元组a′=〈a1,…,a k−1,a k+1,…,a n〉,并记w=|D k+1|…|D n|.如果分别取D1,…,D n和D1,…,D k−1,D k+1,…,D n为这两个数据集的线性化属性序列,则LINEAR(a′)=[LINEAR(a)−a k*w−LINEAR(a) mod w]/|D i|+LINEAR(a) mod w.其中,a mod b是将a对b取模.该命题表明,数据在一个(或多个)维上的投影操作可以方便地进行,即用Header方法的后向映射得到数据的逻辑位置,再用命题2得到新的逻辑位置,然后用Header方法的前向映射计算新数据的物理位置.整个操作可在压缩状态下完成,数据无须解压缩过程.此过程被广泛用于我们的算法中.2 压缩数据仓库中的Iceberg Cube算法2.1 基本思想在论述中,我们将待计算的Iceberg Cube记为ICube,将ICube的输入数据集记为D(A1,…,A n,M1,…,M k).我们的算法要求ICube的Having条件中的聚集函数满足如下定义的反单调性,且ICube中的所有聚集函数满足如下定义的分布性或代数性.设f是ICube中的一个聚集函数,A,B⊆{A1,…,A n},S是D的任意子集且S被划分成S1,…,S k,使得∪i S i=S, S i∩i≠j S j=∅.我们将f在S上对A的聚集结果表示为f A(S).定义2. 设f是ICube的Having条件中的一个聚集函数.对任意A,B⊆{A1,…,A n},如果f在S上对A的聚集结果f A(S)不满足ICube的Having条件,蕴含f在S上对A∪B的聚集结果f A∪B(S)也不满足ICube的Having条件,则称f对这个Having条件满足反单调性.min(对≤条件),max(对≥条件),sum(对非负度量操作时对≥条件),count(对≥条件)等函数均满足反单调性.但某些聚集函数(如average)不满足反单调性.文献[8]讨论了将某些复杂聚集函数(如average)转换成反单调聚集函数的方法,并保证不丢失ICube中的元组.基于此,我们假设ICube中having条件的聚集函数均满足反单调性.定义3. 设f是ICube的聚集函数,A⊆{A1,…,A n}.若存在函数g使f A(S)=g(f A(S1),…,f A(S k)),则称f满足分布性.许多聚集函数均满足分布性.如min,max,sum,count等,它们对应的函数g分别是min,max,sum,count.1746 Journal of Software 软件学报 V ol.17, No.8, August 2006ABCDABC ABD ACD BCD AB AC CDBD BC AD D CBAALLABCD ABC ABD ACD BCD AB AC CDBD BC AD D CB AALLABCD ABC ABD ACD BCD AB AC CDBD BC AD D CB AALL 定义4. 设f 是ICube 的聚集函数,A ⊆{A 1,…,A n }.若存在多值函数g 和单值函数h 使f A (S )=h (g A (S 1),…,g A (S k )),则称f 满足代数性.代数性聚集函数如average ,它所对应的多值聚集函数为〈count ,sum 〉,单值函数h =sum (sum i )/sum (count i ). 聚集函数的分布性和代数性使得我们在内存不足以容纳全部数据时可将数据划分成若干个部分,然后对每部分数据分别聚集,再通过运算得到正确的聚集结果.根据处理cuboid 的顺序,ICube 算法可分为自顶向下算法(TDC)和自底向上算法两类(BUC).在由所有cuboid 构成的代数格中(如图1(a)所示),TDC 算法从包含属性最多的cuboid 开始计算,向下逐步计算各个层次的cuboid,这类方法常用于RDW,它往往需要生成复杂的中间结果.此外,这类算法无法利用聚集函数的反单调性来提高计算效率.TDC 的处理过程如图1(b)所示.BUC 算法从包含属性最少的cuboid 开始计算,向上逐步计算各个层次的cuboid,其处理过程如图1(c)所示.这一类算法的核心思想是对输入数据逐步进行划分,逐次处理各个部分的数据.如果在计算过程中发现某个cuboid 在某个数据子集上不满足Having 条件,则利用聚集函数的反单调性可知其上层的cuboid 在相应的数据子集上也不能满足Having 条件,由此对计算过程进行剪枝以提高计算效率.BUC 算法的缺点是要求Having 条件中的聚集函数满足反单调性.我们给出的算法是BUC 算法,这是由于映射完全的压缩方法便于数据划分,同时又可以利用聚集函数的反单调特性来提高计算效率.Lattice of all cuboidsTDC processing treeBUC processing tree(a) (b) (c)Fig.1 The procedure of computing Iceberg Cube图1 Iceberg Cube 的计算过程在给出算法之前,我们先描述算法的基本思想.对于多维数据集D (A 1,…,A n ,m 1,…,m k ),我们先根据其属性集合生成如图1(c)所示的BUC 处理树,然后将这棵树划分成n 个分支,第i 个分支包含以A i 为前缀的所有cuboid,如图2所示.该划分得到的分支称为一级分支,并将所有一级分支依次表示为T 1,…,T n .算法在运行时,逐次处理各个一级分支,处理每个一级分支的数据集合各不相同,处理分支T i 所需的数据集D i 需要在处理T i −1时生成,且处理分支T 1所需的数据D 1即为输入数据D .在处理分支T i 时,数据D i 被划分成若干个互不相交的部分D i 1,…,每个部分在该分支的公共前缀A ,i is D i 上具有相同的取值,每一部分数据被称作一个数据块.这样,同一个 分支在不同数据块上的聚集结果不会得到相同的元组.因此,处理分支T i 时可以依次处理每个数据块D ij ,同时生成处理下一个分支所需的部分数据,放入临时文件F ij .当分支T i 处理后,利用第1节所给出的性质合并F ij (1≤j ≤s i )得到D i +1.重复上述过程,直到所有分支被处理完毕为止.注意:临时数据也是以压缩形式存在的,整个计算过程均无需显式的解压缩过程.当内存不足以容纳分支的一个数据块时,我们将较大的一级分支划分成如图3所示的二级分支.在处理每个一级分支时,用前面类似的过程来依次处理每个二级分支.我们将在第2.3节中阐述此过程. 2.2 基于一级分枝的Iceberg Cube 算法我们先假设内存足够大,在处理任何一级分支T i 时,内存能够容纳该分支的每个完整数据块D ij .在处理一级分支T i 时,算法依次将各个数据块D ij 读入内存;当数据被读入内存时,利用后向映射得到数据在线性化数组中的位置,因此,内存中所有数据项都形如(Tag ,value 1,…,value k ),其中tag 是线性化函数作用到该数据项上得到的值,而value j 是该数据项的度量值;对于内存中的数据,自底向上地计算该分支中各个cuboid 的聚集值.再利用第骆吉洲 等:大型压缩数据仓库上的Iceberg Cube 算法17471节命题2中的方法将内存中的数据进行投影,去掉下一个一级分支中无关的维A i ,并进行必要的聚集操作;最后,将投影后的数据依据下一个分支的公共属性进行排序,压缩后写到临时文件F ij 中.当所有数据块被处理完之后,合并所有F ij ,得到处理下一个分支所需的数据D i +1.重复上述过程,直到完成所有分支的处理.ABCDABC ABD ACDBCD AB AC CDBDBCADCB AALLABCDACDABD ABCACAB(a) (b)Fig.2 An example of branches of 1th order图2 一级分支示例Fig.3 An example of branches of 2th order图3 二级分支示例在使用内存中的数据D ij 来计算分支T i 中所有cuboid 的聚集值时,我们以深度优先的方式自底向上地遍历T i ,依次处理各个cuboid.在处理当前cuboid,即cuboid 时,所有数据项的Tag 值保持不变,利用命题2中的方法计算所有数据项在cuboid 中的逻辑位置new_tag ,然后根据new_tag 值将所有数据项排序;这样,new_tag 值相同的数据项被放在一起;对具有相同new_tag 值的数据进行聚集,得到cuboid 的一个元组.如果该元组满足Having 条件,则将它输出;否则,根据Having 条件中聚集函数的反单调性,我们知道D ij 中产生该元组的数据在处理这个cuboid 的后继cuboid 时是不需要的,因此,将这些数据用cuboid 标记之后入栈;如果当前cuboid 没有后继cuboid 时,则回溯到达下一个要处理的cuboid,即cuboid ′,这时,要将栈内所带标记不是cuboid ′的前缀的所有数据项弹出到数据区重新纳入考虑;重复上述过程,直到整个分支内的所有cuboid 都被计算完毕为止.下面的例子将说明上述过程.为了清楚起见,例子中的数据是以未压缩形式给出的.设输入数据集有属性A ,B ,C ,D ,计算ICube 时的处理过程如图2所示.我们首先处理第1个分支:先将输入数据划分成两个数据块,每个数据块在该分支的所有cuboid 的公共前缀上具有相同的取值(如图4(a)所示);之后,将第1个数据块读入内存,自底向上地计算该分支的所有cuboid 的结果;然后将所有数据进行投影以去掉属性A ,排序、聚集、压缩之后写到临时文件.类似地处理其余数据块.当所有数据块都被处理之后,我们得到了ICube 在第1个分支上的结果和一些压缩临时数据文件(如图4(b)所示).将这些临时文件归并,得到处理下一个分支所需要的数据,然后就可以进行类似的处理直至完成整个计算.值得注意的是,为了减小磁盘I/O 操作,临时文件的归并操作无须独立完成,只需在数据进入内存时直接完成归并,同时完成对数据的划分操作,但这样做将导致打开的文件句柄过多.因此,我们可以对临时文件进行部分归并,再利用上述策略.另一方面,由于计算过程中的投影操作,处理各个分支时的数据逐步减少.为了使数据减少的速度尽可能快,以提高计算效率,我们在压缩数据时,将线性化属性序列中的属性按其值域大小的递减顺序排序,即|A 1|>|A 2|>…>|A n |,这样就可以利用第1节给出的性质很方便地完成上述各个操作.假设ICube 的Having 条件是count (*)≥3且内存中的数据如图4(a)的第2个数据块所示,我们来考察算法如何计算图2中第1个分支中的所有cuboid.我们首先根据内存中的元组数计算得到Agr (A ),此时,内存中数据区和栈的情况如图5(a)所示;再用内存的数据计算Agr (AB ),此时,有些聚集值不满足having 条件,产生这些聚集值的数据被压入栈,因为计算Agr (AB *)时不需要它们,数据区和栈的情况如图5(b)所示.类似地,计算Agr (ABC )的数据之后,数据区和栈的情况如图5(c)所示.由于此时数据区为空,我们不再计算Agr (ABCD ),进行回溯直接计算Agr (ABD ).这时,我们将栈内标记不是ABD 前缀的数据弹出,并让它们进入数据区.这个操作完成后,数据区和栈的情况如图5(d)所示;完成Agr (ABD )的计算后,数据区和栈的情况如图5(e)所示.其他计算不再赘述.值得注意的是,数据区和栈无须独立使用各自的空间,只需一个辅助结构记录数据所带的标记和带有该标记的元组的个数,通过数据的移动,即可在数据区内实现栈操作.但为了叙述方便,我们将它分开加以叙述.1748 Journal of Software软件学报 V ol.17, No.8, August 2006(a)(b)(c)Fig.4 An example for the changing dataset in FIC (first-branch based Iceberg Cube algorithm) algorithm 图4 FIC(first-branch based Iceberg Cube algorithm)算法中数据集变化过程示例a2b1c2d1a2b2c1d1a2b1c2d2a2b2c2d1a2b1c2d2a2b1c2d1a2b2c1d1a2b1c2d2a2b2c2d1a2b1c2d2ABa2b1c2d1a2b2c1d1a2b1c2d2a2b2c2d1a2b1c2d2ABCABABABCABABCABABCa2b1c2d1a2b2c1d1a2b1c2d2a2b2c2d1a2b1c2d2ABDABABa2b1c2d1a2b2c1d1a2b1c2d2a2b2c2d1a2b1c2d2ABDABDABABDABABD(a) (c)(b) (e)(d)Fig.5 An example for the changing data in memory in FIC algorithm图5 FIC算法的内存数据变化过程示例设f1,…,f h是计算ICube过程中需要计算的全部聚集函数.由于此时我们无须利用聚集函数的分布性和代数性,因此,这些聚集函数包括ICube中需要输出的聚集函数、Having条件中的聚集函数以及进行投影操作时需要计算的聚集函数.下面是算法的形式化描述.算法1(FIC算法). FIC(D(A1,…,A n,m1,…,m k), f1,…,f h,condition).输入:D(A1,…,A n,m1,…,m k), f1,…,f h,Having条件condition;输出:数据集D(A1,…,A n,m1,…,m k)上的Iceberg Cube结果ICube.1. 构造所有一级分支T1,…,T n¬,D1←D(A1,…,A n,m1,…,m k);2. 对T1,…,T n中的每个分支T i DO3. WHILE (数据集D i未处理完)4. 读数据D i的下一个块D ij到内存,由后向映射计算每个数据的线性化值Tag;5. S←root(T i);6. WHILE (S!=NULL)7. 将栈stack中标记不为S的前缀的数据弹出到数据区;8. 根据每个数据的Tag值计算它在S下的new_tag值;9. 根据new_tag值将数据区中的数据排序;10. FOR 每个new_tag值NEW_TAG//扫描数据区中的数据f j←0 for j=1 to h;11. 在满足new_tag=NEW_TAG的所有数据项上计算f1,…,f h;12. IF (condition(f1,…,f h)=TRUE) THEN 输出〈NEW_TAG, f1,…,f h中需输出的值〉;ELSE 将第11步中的所有数据项标记为S并压入stack的栈顶;13. S←Next(T i,S );14. 生成有序数据集D(A i+1,…,A n),使其在属性A i+1上有序,写入临时文件F ij;骆吉洲 等:大型压缩数据仓库上的Iceberg Cube 算法174915. 合并第11步生成的临时文件F ij ,使其在属性A i +1上有序,得到D i +1.算法第1步无须显式地构造所有一级分支,只需给出该一级分支的根即可;第5步的root (T i )用来取得T i 的根;第13步根据分支T i 的当前cuboid S ,以深度优先方式构造下一个cuboid,若T i 的所有cuboid 均已被产生, 它将返回空;第4步计算Tag 值的过程由映射完全的压缩方法保证;第8步计算new _tag 的过程由命题2给出. 2.3 一般算法一级分支对应的数据块可能太大,不能完整地被内存容纳.因此,我们还需要对较大的一级分支进行细分,得到其他形式的一些分支,使得所有分支的数据块均能完整地容纳到内存中.我们将细分一级分支得到的分支 称为二级分支,如图3所示.我们将由一级分支T i 细分得到的所有二级分支表示为T i 1,…,.第1个二级分支 i ib T T i 1中所有cuboid 的公共前缀是线性化属性序列的前缀,计算该二级分支中cuboid 的数据就是计算一级分支T i 的数据D i ,这时,我们可以将T i 1等同于一级分支T i .处理其他二级分支T ij (j >1)的数据要在处理二级分支T ij −1时生成.按上述要求将BUC 处理树划分成一些分支以后,我们逐次地处理每个一级分支T i .对于T i 的任意数据块D ij ,如果D ij 能够被内存容纳,则在D ij 上用与FIC 算法同样的方法自底向上计算T i 中所有的cuboid;否则,依次处理T i 的每个二级分支T ik ,以计算得到T i 中所有cuboid 在D ij 上的聚集结果.D ij 是处理T i 1所需的输入数据处理T ,)1(ij D ik (k >1)所需的输入数据需要在处理T )(k ijD ik −1时生成.现在考虑在数据上处理T )(k ij D ik :首先,根据root (T ik )将划分成一系列子数据块B )(k ij D 1,…,B l ,每个子数据块在root (T ik )上具有相同的取值且能够被内存容纳;然后,依次处理每个数据子块B t (1≤t <l ).在内存中处理数据子块B t 时,先完整计算root (T ik )在B t 上的聚集结果,写入到临时文件F ,同时将满足Having 条件的元组输出;然后,自底向上地计算T ik 中其他cuboid 的Iceberg Cube 结果,同时生成处理T ik +1所需的部分数据,写入临时文件f kt 中;如果t =1,还要生成处理T i +1所需的数据写入临时文件F it 中.当所有数据子块处理完之后,由F 自顶向下计算所有可以由root (T ik )的完整聚集结果计算得到的cuboid 的Iceberg Cube 结果,再合并所有f kt ,得到处理T ik +1所需的数据;如果k =1,则还要合并F )1(+k ij D it ,得到处理T i +1所需的部分数据,写入临时文件F i .当所有D ij 被处理完之后,合并F i ,得到处理T i +1所需的完整数据D i +1.一般算法形式化描述如下:算法2 (GIC (general Iceberg Cube algorithm )). 根据BUC 处理树分支来计算Icube . 输入:D (A 1,…,A n ,m 1,…,m k ),having 条件condition ;输出:数据集D (A 1,…,A n ,m 1,…,m k )上的Iceberg cube 结果ICube . 1. 构造所有一级分支T 1,…,T n ,D 1←D (A 1,…,A n ,m 1,…,m k ); 2. FOR i =1 TO n DO3. WHILE (D i 的数据未被处理完)4. IF D i 的数据块D ij 能被内存容纳 THEN 用FIC 的方法计算T i 的每个cuboid; ELSE5. ←D )1(ij D ij ;6. FOR T i 的每个二级分支T ik DO7. WHILE (D 未被处理完) )(k ij8. 读取下一个数据子块B t 放入内存;9. 在B t 上计算root (T ik )的完整聚集结果,写入文件F ,输出满足condition 的元组; 10. IF (k =1) THEN 生成T i +1对应的部分数据,写入F it ;11. 用FIC 中的方法计算T ik 中除root (T ik )以外的cuboid 的ICube 结果; 12. 生成T ik +1所需数据,并写入临时文件f k ,t ;13. 合并第11步中生成f k ,t ,得到计算T ik +1所需的数据;)1(+k ij D1750 Journal of Software 软件学报 V ol.17, No.8, August 200614. 根据F 自顶向下计算可以由root (T ik )生成的Cuboid 结果并输出; 15. IF k =1 THEN 合并F it ,得到处理T i +1所需的部分数据F j ; 16. 合并F j ,得到处理T i +1所需的数据D i +1.与FIC 算法一样,GIC 算法的第1步无须显式地生成所有一级分支.第4步的实现很简单,就是将内存的数据区读满,同时检查它是否包含一个完整的数据块;内存中其他数据块的数据以后无须重读,保留在数据区直到被使用;如果内存中没有包含一个完整的数据块,我们根据内存中的数据即可确定第1个二级分支的根.因此,二级分支的划分无须显式地进行,计算过程可以直接产生所需的二级分支.算法第8步和第14步中用到了聚集函数的分布性或代数性,即在各个子数据块上分别计算root (T ik )的聚集结果之后,可以得到该cuboid 在整个数据块上的聚集结果;为说明第14步的过程,假设root (T ik )=ABCD ,根据F 中ABCD 在数据块D ij 的完整聚集结果(未检查Having 条件),我们可以依次计算ABD ,ACD ,AB ,AC ,AD ,A 等cuboid 在数据块D ij 上的Iceberg Cube 结果.第9步和第11步的计算过程与FIC 算法中产生临时数据的过程相同.算法GIC 的特点是,D i 中数据量的大小随着i的增加迅速减小,且在每个数据块D ij 上依次处理二级分支时,中的数据量随着k 的增加也迅速减小.)1(+k ij D 3 实 验为了本节论述方便,我们将先用文献[1]中的方法在压缩MDW 上计算完整的Cube,然后用having 条件对所有元组进行过滤来产生Iceberg Cube 这种方法称为Cube-ICube 策略.我们实现了FIC 算法和GIC 算法,并研究了它的性能.我们将FIC 算法和GIC 算法的性能与Cube-ICube 的性能进行了比较.所有的算法均用C++实现,其运行环境是内存为256M,主频为2.4G 的奔腾机器,机器上运行的操作系统是XP 专业版.在实验中,我们分别在维属性的值域大小为15,12,10,8,7,5,5,5,3,2,2的人工合成的10维数据集上运行第2.2节例子中所给出的Iceberg Cube(只是将该维数扩展为10).我们从4个方面考察了算法的性能:(1) 考察算法FIC 和GIC 处理各个分支所需的时间;(2) GIC 算法与Cube-ICube 策略的性能比较; (3) Having 条件中最小支持度对算法执行时间的影响;(4) 考察数据集的稀疏程度对算法压缩数据的时间、计算时间和I/O 时间的影响.在实验1中,我们在每个维属性的值域上产生随机值分别生成了由20万条记录构成的数据集和由200万条记录构成的数据集,并以10M 内存空间在前者上运行FIC 算法而在后者上运行GIC 算法.处理各个一级分支花费的时间如图6所示.我们看到,算法处理各个一级分支的时间迅速减小,这主要是因为投影操作使得各个分支的数据集迅速减小.在实验2中,我们穷举每个维属性的取值生成了由约1 350万条记录构成的数据集,并以不同的内存设置运行了GIC 算法和文献[1]中的G-Cube 算法,然后在G-Cube 的结果上用Having 条件过滤得到Iceberg Cube 的结果,统计总的时间开销(如图7所示).我们看到,GIC 算法的性能优于Cube-ICube 策略.Fig.6 Time for the computation of each branch图6 处理各个分支的时间Fig.7 Comparison between GIC and Cube-ICube图7 GIC 与Cube-ICube 的比较100060005000400030002000Size (M)Cube-IcubeGICFIC GICT i m e (s )T i m e (s )在实验3中,我们用实验2中的数据集和20M 内存空间运行算法GIC,运行时修改Having 条件中的最小支持度,总的时间开销如图8所示.我们看到,随着最小支持度的变化,Having 条件中聚集函数的反单调性能够有效剪除某些cuboid 的计算.在实验4中,我们生成了稀疏程度不同的3个数据集,其中密度为1的数据集由1 350条记录构成.在这3。
数据魔方的名词解释
数据魔方的名词解释在信息时代的浪潮中,数据成为了一种无处不在的存在。
为了更好地利用数据,人们提出了各种各样的数据处理方法。
其中,数据魔方是一种广泛应用的概念。
本文将对数据魔方的相关名词进行解释,介绍其基本概念与应用领域。
1. 数据魔方(Data Cube)数据魔方是一种多维数据分析概念,它将数据按照多个维度进行切分和组合,形成一个多维空间中的立方体。
数据魔方可以帮助我们直观地理解数据之间的关系,并进行多维度的分析与查询。
在数据魔方中,每个维度都代表一种属性,每个维度对应着一个坐标轴,而数据则以另一维度作为测量指标进行展示和分析。
2. 维度(Dimension)与指标(Measure)维度是数据魔方中的一个重要概念,它指的是对数据进行分类和组织的属性。
常见的维度包括时间、地理位置、产品类别等。
指标则是衡量数据的标准或度量,通常代表着数据的数值或计数。
例如,在一个销售数据魔方中,时间可以作为一个维度,而销售额可以作为一个指标。
3. 切片(Slice)与切块(Dicing)切片是指在数据魔方中选择某个维度或维度组合,对数据进行过滤和筛选,以展示特定的数据子集。
例如,在销售数据魔方中,可以选择某个特定的时间段,只展示该时间段内的数据。
切块则是将数据按照不同的维度进行组合,形成更精确的数据子集。
例如,在销售数据魔方中,可以选择同时按照时间和地理位置进行切块,以展示不同地区的销售情况。
4. 钻取(Drill Down)与上卷(Roll Up)钻取与上卷是数据魔方中的数据导航操作,用于在不同层次之间进行切换和展示。
钻取是指从概览层次逐渐深入到细节层次,查看更加详细的数据。
例如,在一个销售数据魔方中,可从总体销售额钻取到各个产品类别的销售额。
上卷则是相反的过程,从细节层次回到概览层次。
例如,在销售数据魔方中,从各个产品类别的销售额上卷到总体销售额。
5. 数据挖掘(Data Mining)数据挖掘是指从大量数据中提取出潜在的、以往难以发现的、对决策有价值的信息和知识的过程。
立方聚类规则
立方聚类(Cube Clustering)是一种基于多维空间数据的聚类算法。
它主要用于数据挖掘和机器学习,特别是在高维数据集的聚类分析中。
立方聚类算法将多维空间划分成一系列立方体,并在此基础上进行聚类。
这些立方体称为“单元格”(cells),每个单元格可能包含一个或多个数据点。
立方聚类的基本规则和步骤通常包括:1. 确定维度和立方体大小:首先确定数据集的维度和每个立方体的边长。
在三维空间中,这相当于确定立方体的宽度和高度。
2. 创建立方体网格:根据指定的边长,在多维空间中创建一个立方体网格。
每个立方体在空间中占据一个特定的区域。
3. 分配数据点到立方体:将数据集中的每个点分配到最近的立方体中。
数据点可以位于立方体的内部或边界上。
4. 计算立方体中的数据点数量:对于每个立方体,计算其中包含的数据点数量。
这个数量可以作为该立方体中数据点的密集度的度量。
5. 确定聚类中心:对于每个立方体,可以选择其中心作为聚类中心。
在某些情况下,可能会使用其他策略来确定聚类中心,例如使用数据点的平均值。
6. 形成聚类:基于立方体中数据点的密集度和聚类中心的确定,形成聚类。
每个立方体对应一个聚类。
7. 调整立方体大小和聚类:可以通过调整立方体的边长来精细或合并聚类。
较大的立方体可能包含多个较小的聚类,而较小的立方体可能只包含一个聚类。
8. 迭代优化:可以通过迭代过程来优化立方体的大小和形状,以及聚类结构,以更好地适应数据分布。
立方聚类的关键优势在于它能够适应不同维度的数据集,并且可以灵活地调整聚类的粒度。
然而,算法的复杂性可能会随着数据集大小的增加和维度的提高而增加。
在实际应用中,需要根据具体的数据特性和分析目标来调整参数和执行算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
—46— 基于数据立方体的属性核计算方法 刘亚波1,2,刘大有1,2,高 滢1,2,齐 红1,2 (1. 吉林大学计算机科学与技术学院,长春 130012;2. 吉林大学符号计算与知识工程教育部重点实验室,长春 130012) 摘 要:商业智能系统应用联机分析处理技术将数据组织为多维数据立方体。该文建立了数据立方体中非空单元与决策表中等价类的一一映射关系。通过复用数据立方体中的聚合结果,提出一种基于数据立方体计算相容决策表属性核的方法,并证明了该方法的正确性。利用UCI数据集进行实验,结果表明在大数据量下该方法具有较好的时间效率。 关键词:数据立方体;联机分析处理;粗集;属性核
Data Cube-based Feature Core Computing Approach
LIU Ya-bo1,2 , LIU Da-you1,2, GAO Ying1,2, QI Hong1,2 (1. Department of Computer Science and Technology, Jilin University, Changchun 130012; 2. Key Laboratory of Symbolic Computation and Knowledge Engineering, Ministry of Education, Jilin University, Changchun 130012)
【Abstract】In BI system, data are formed as a multidimensional OLAP cube. This paper focuses on computing the feature core of the decision tableby reusing the aggregation in cube. After the relation is established between nonempty cells in a data cube and equal classes from a decision table, anew cube-based approach of computing the feature core of a consistent decision table is put forward in this paper. And the correctness of the newapproach is proved. The experiments with UCI data set show that the new approach has high time performance. 【Key words】data cube; online analysis processing; rough set; feature core
计 算 机 工 程Computer Engineering第34卷 第20期
Vol.34 No.20 2008年10月
October2008
·软件技术与数据库· 文章编号:1000—3428(2008)20—0046—03文献标识码:A
中图分类号:TP311
基于粗集的属性约简算法通常建立在属性核基础上[1],多数求属性核的方法基于区分矩阵[2-3]。根据区分矩阵确定属性核的方法易于理解,但计算量大。文献[3]给出了不需建立区分矩阵的属性核计算方法,但对数据量较大的决策表,仍无法避免计算量大的问题。商业智能系统运用数据仓库、联机分析处理(OLAP)和数据挖掘等技术来处理和分析数据。OLAP技术将数据组织为多维数据立方体(data cube),用维和度量来描述数据。在商业智能系统中进行数据挖掘时,若能复用已有数据立方体中的聚合结果及下钻等OLAP操作,可提高挖掘效率[4],本文基于数据立方体及OLAP操作计算相容决策表属性核。 1 相关概念和理论 定义1 决策表S=(U,A,V,f )。其中,U为论域;A= C∪D且C∩D = ∅,C是条件属性集,D是决策属性集;V=aaAV∈∪,Va是a的属性值集;f:U×A V是函数,它指定U中每个对象在不同属性上的取值。若U中存在x和y使得f(x,C)=f (y,C),但f(x,D)≠f(y,D),则称S为不相容决策表,否则为相容决策表。 定义2 决策表S=(U,C∪D,V,f),称C中所有必要属性的集合为C的属性核,记为Core(C)。 定义3 相容决策表S=(U,C∪D,V,f )。条件属性c∈C是S的关键属性,当且仅当S'=(U,C-{c}∪D,V,f )不相容。 定理1 若决策表S=(U,C∪D,V,f )相容,则S的所有关键属性构成的集合为C的属性核。 2 基于数据立方体计算属性核的方法 决策表S=(U,A,V,f), A=C∪D,将U作为事实表,A作为数据立方体的维集,维a(a∈A)的成员集为Va∪{any},可构造|A|维数据立方体,记为Cube(S)。若A中每维都取一个成员,可确定Cube(S)中唯一单元,设为p,记p∈Cube(S)表示p是Cube(S)中单元。对Cube(S)中单元p给出以下描述方法: (1)∀ai∈A(1≤i≤|A|),令ai(p)表示p的维ai
成员,记p=
[a1(p),a2(p),…,a|A|(p),Count(p)],Count(p)是p的度量值。 (2)Dims(p)={a|a(p)≠any, a∈C∪D} (3)Data(p) ={x|∀a∈Dims(p),a(x)=a(p),x∈U} 例1 由表1决策表S生成4维数据立方体Cube(S),包
含单元 p=[high,any,yes,any,2],Dims(p)={c1,c3},Data(p)={x1,
x2}, Count(p) =|Data(p)|=2。 表1 决策表S C∪D c1 c2 c3 d x1 high good yes profit x2 high medium yes loss x3 low medium no profit x4 low good yes loss
2.1 等价类与非空单元的映射关系 为证明决策表中等价类与数据立方体中非空单元间的一一对应关系,给出定义4、定义5、定义6及引理1。定义7给出了具体的对应方法。
基金项目:国家自然科学基金资助重大项目(60496321);国家自然科学基金资助项目(60373098, 60573073);国家“863”计划基金资助项目(2003AA118020) 作者简介:刘亚波(1975-),女,博士后,主研方向:粗集,数据挖掘,数据仓库;刘大有,教授、博士生导师;高 滢,硕士;齐 红,博士 收稿日期:2008-06-12 E-mail:yabo@jlu.edu.cn —47—
定义4 决策表S=(U,C∪D,V,f),p1,p2∈Cube(S),若∀a∈ C∪D, a(p1)=a(p2),则p1=p2,否则p1≠p2。 定义5 决策表S=(U, C∪D,V,f),定义 Pairs(S)={|E∈U/R, R⊆C∪D} 若,∈Pairs(S),且R1=R2,E1=E2,则= ,否则≠. 定义6 决策表S=(U,C∪D,V,f),若p∈Cube(S)且Count (p)>0,则称p为非空单元,定义非空单元集 Cells(S)={q|Count (q)>0,q∈Cube(S)}。 引理1决策表S=(U,C∪D,V,f),对∀p∈Cells(S)都有∈Pairs(S)成立。 证明:任取p∈Cells(S),则Dims(p)⊆C∪D是U上等价关系,Data(p)是U/Dims(p)中等价类。由定义5,∈Pairs(S)。证毕。 定义7 决策表S=(U,C∪D,V,f), ∈Pairs(S), p∈ Cells(S),若Dims(p)=R, Data(p)=E,则σ(R,E)=p。 引理2 决策表S=(U,C∪D,V,f),∀∈Pairs(S),存在唯一单元p∈Cells(S)满足σ(R,E)=p。 证明: (1)存在性。取∈Pairs(S),设R={a1, a2,…,as}⊆C∪D, E={x|a1(x)=v1, a2(x)=v2,…,as(x)=vs, x∈U},若ai维取vi成员 (1≤i≤s),其他维取any成员,可确定Cube(S)中唯一单元,设为p,易见Data(p)=E, Dims(p)=R,因Count(p)=|E|>0,故p∈Cells(S),则σ(R,E)=p。 (2)唯一性。假设存在p’(p’≠p)∈Cells(S)满足σ(R,E)=p’。由σ(R,E)=p’,可得 Dims(p’)=Dims(p)=R, Data(p’)=Data(p)=E (1) 由p’≠p,可得 或Data(p’)=Data(p)=∅,或Data(p’)≠Data(p) (2) 显然式(1)、式(2)矛盾,故假设不成立。引理2证毕。 引理2表明可以把Pairs(S)中任意元素映射到Cells(S)中唯一单元。下面证明该映射是一一映射。 定理2 决策表S=(U,C∪D,V,f),σ是从Pairs(S)到Cells(S)的一一映射。 证明: (1)任取,∈Pairs(S),≠,往证σ(R1,E1)≠σ(R2,E2),用反证法。 设σ(R1,E1)=p1,故Dims(p1)=R1,Data(p1)=E1; 设σ(R2,E2)=p2,故Dims(p2)=R2, Data(p2)=E2。 假设σ(R1,E1)=σ(R2,E2),则p1=p2。故R1=R2, E1=E2, =,与已知≠矛盾。因此,σ(R1,E1)≠ σ(R2,E2),σ是单射。 (2)∀p∈Cells(S),令R=Dims(p),E=Data(p),由引理1, ∈Pairs(S)且σ(R,E)=p,因此σ是满射。 σ既是单射,也是满射,故σ是一一映射,使决策表中等价类与数据立方体中非空单元一一对应。证毕。 推论1 决策表S=(U,C∪D,V,f), R⊆C∪D,则 U/R= {Data(q)|Dims(q)=R, q∈Cells(S)}。 证明: (1)设E∈U/R,则∈Pairs(S)。再设σ(R,E)=p,故 Dims(p)=R,则p∈{q|Dims(q)=R, q∈Cells(S)}, E∈{Data(q)| Dims(q)= R, q∈Cells(S) }。 (2)设p∈{q|Dims(q)=R,q∈Cells(S)},则Dims(p)=R, Data(p)∈U/R。 故U/R={Data(q)|Dims(q)=R, q∈Cells(S)}。证毕。 根据推论1,若决策表S=(U,C∪{d},V,f),则 U/C={Data(q)|Dims(q)=C,q∈Cells(S)} U/{d}={Data(q)|Dims(q)={d},q∈Cells(S)} 2.2 基于数据立方体的属性核计算算法 以下设决策表S=(U,C∪{d},V,f),且S是相容决策表。根据决策表中等价类与Cube(S)中非空单元的一一对应关系,通过在部分非空单元上沿维 d 下钻,计算出关键属性。 定义8 决策表S=(U,C∪{d},V,f ),设p, q∈Cells(S),若∀c∈C, c(q)=c(p)且d(p)=any, d(q)≠any,则称q是p沿维d的下钻单元。称p的所有沿维d的下钻单元构成的集合为p沿维d的下钻集,记为p↓d。