CN106095859A - 基于olam的多维度中医针灸关联规则挖掘方法 - Google Patents
基于olam的多维度中医针灸关联规则挖掘方法 Download PDFInfo
- Publication number
- CN106095859A CN106095859A CN201610390244.4A CN201610390244A CN106095859A CN 106095859 A CN106095859 A CN 106095859A CN 201610390244 A CN201610390244 A CN 201610390244A CN 106095859 A CN106095859 A CN 106095859A
- Authority
- CN
- China
- Prior art keywords
- data
- cube
- olam
- chinese medicine
- association rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于OLAM的多维度中医针灸关联规则挖掘方法,包括:采用数据预处理技术对原始关系表进行构造,得到数据仓库的星型模式,基于Mondrian构建了数据立方体,完成对从原始数据库到数据立方体的转化;基于立方体模型的结构,通过构造与之适合的查询语句,获得立方体信息,即从立方体数据中得到候选项集、频繁项集;通过置信度,获得相关联结果。
Description
技术领域
本发明涉及一种基于OLAM的多维度中医针灸关联规则挖掘方法。
背景技术
关联规则挖掘是数据挖掘技术的一个重要研究分支,也是一种经典的数据挖掘方法,主要用于从大量数据中发现隐藏的、有趣的、属性间的规律。随着研究的进展,关联分析从最初的购物篮分析,逐渐扩展到网站设计与优化、网络入侵检测、交通事故模式分析、药物成分关联分析、设备故障诊断、天文恒星光谱数据相关性分析、软件bug挖掘等各个领域。
关联规则分析最早是在1993年被IBM公司Ahnadm Research Center的Agrawal等人提出,并且最早提出了用于对销售事务数据集进行挖掘的AIS算法;1994年,Agrawal等人对原有AIS算法进行了改进,提出了一种具有里程碑意义的关联分析算法——Apriori算法。1996年Mannila等人提出精简集的概念。1997年Zaki等人提出主要采用事务聚类、项集聚类和格遍历等技术的关联规则挖掘算法。Jiawei Han在2000年提出了基于频繁模式增长的FP-growth算法,通过FP-growth存储事务集[1],但由于FP-tree算法每次挖掘都 要事先选择预先设置一个合适的最小支持度,因此,构造一次FP-树是一件很困难的事[2]。2001Robert Castel等人提出了基于马尔可夫链的关联规则挖掘算法-MAMBO算法,该算法主要利用的是统计分析的知识。随后Qinghua Zou等人在2002年给出了模式分解算法。这个算法除了记录频繁集外,还记录用于事务的模式分解的非频繁集,这种被非频繁集模式分解的事务中就不存在非频繁集。Zaki等人在2003年又提出了异项集的垂直挖掘算法,该算法适合用来挖掘稠密事务集。还有其他一些比如Gunopulos等人提出的随机算法使用了垂直向量(verticalbit vector)的数据结构来标识事务数据库,但它无法保证发现所有的频繁项目集,具有一定局限性。2005年,Yuefeng Li等提出使用多层粒度结构表示多维关联规则,Wanxin Xu等人设计了新型多索引结构用于保存多维项集[3]。2008年,曾万聃等人提出将矩阵应用到关联规则技术中[4],这为关联规则挖掘的研究提出了新的思路。到目前为止,该领域的主要研究方向可以归纳如下:层次挖掘算法、增量式更新算法、分布、并行式挖掘算法、多层关联规则、多值关联规则、概念格关联规则算法等等。
关联数据挖掘技术发展至今,除了层出不穷的算法外,在实际应用中,也得到了广泛的应用,最著名的就是超市购物篮分析,分析结果对于零售商店的物品摆放、顾客的购买模式研究、商品的进货管理等方面都有一定指导意义。除此之外,关联分析在商业与金融、人口普查数据分析、建筑工程数据分析、互联网行业和通信领域也有着广泛的应用[5][6]。也有将Apriori算法应用在某市消防系统的数据上, 选取战斗时间、出动公安消防车辆编组数量、灾害事故种类以及汇总结果为数据挖掘研究内容,对该城市火灾事故、火灾风险、社会救助规模等进行了深入的分析了解,为数据挖掘在消防系统数据分析方面做出了初步的探索。还有应用关联数据挖掘算法对汽油车的BASM排放检测数据进行关联性分析,对汽车BASM排放检测方法中检测工况及排放污染物检测项目CO、HC、x NO间关联性进行研究,为选择检测汽车尾气方法提供参考。
传统Apriori算法在运行的过程中,生成候选项目集时采用了逐层迭代的方法,另外通过剪枝的方法使得候选项目集的个数得以减少,在事务数相对较少的时候通过提高了算法的运行效率。然而在当数据量较大的情况时Apriori算法将产生大量候选项目集,其计算将会花费很多时间开销;Apriori算法将重复扫描数据库,每生成一个候选集,都要从数据库中读取其支持度来判断它是否为频繁项目集,频繁的扫描数据库造成磁盘空间的多次访问,使Apriori算法的运行时间延长。
发明内容
针对上述问题,本发明提供一种解决了传统关联规则分析算法Apriori不能控制候选集规模和对事务数据库扫描次数过于频繁的问题的基于OLAM的多维度中医针灸关联规则挖掘方法。
有益效果
本发明基于OLAM的多维度中医针灸关联规则挖掘方法与现有 技术具备如下有益效果:
本发明基于OLAM的多维度中医针灸关联规则挖掘方法:结合联机分析挖掘(Online Analytical Mining,OLAM)和矩阵思想,提出了基于OLAM的关联规则算法模型,主要解决了传统关联分析算法Apriori不能控制候选集规模和对事务数据库扫描次数过于频繁的问题。针对该模型,提出了解决方案,并根据该方案设计了相应的挖掘算法,且在中医针灸主题上对算法进行了实施,建立了中医针灸腧穴运用规律的挖掘算法,可为中医针灸诊断提供决策支持。
附图说明
图1是基于OLAM的多维度中医针灸关联规则挖掘方法的步骤流程图;
图2是是基于OLAM的多维度中医针灸关联规则挖掘方法的数据立方体的构建过程;
图3是基于OLAM的多维度中医针灸关联规则挖掘方法的两种立方体的多维表示图;
图4是基于OLAM的多维度中医针灸关联规则挖掘方法的立方体CUBE的多维表示图;
图5是基于OLAM的多维度中医针灸关联规则挖掘方法的针灸腧穴主题的星型模式转换过程描述图。
具体实施方式
下面结合附图对本发明做进一步的描述。
对Apriori算法的改进一般采用选样、基于划分等方法,但这些方法不能解决Apriori算法效率低的根本问题。在传统Apriori算法中的一个核心步骤就是根据(k-1)-频繁集生成k-候选集,降低这个过程的计算量就可以大大提高算法整体运行效率。本技术提出的OLAM模型的提出解决了大数据量时Apriori算法运行效率低下的问题。
本技术结合数据仓库“面向主题”的特点,采用物化数据立方体的数据存储方案,巧妙地对数据立方体的维度和度量值进行设计,结合经典的Apriori算法为关联规则挖掘过程提供中间数据,对于已经物化在数据立方体的数据,直接从内存中读取而不必再次计算,从而减少挖掘时间,提高关联规则挖掘效率。在实现上,本技术采用开源的Mondrian软件作为OLAP引擎,通过对关系数据中的立方体数据进行重新组装成立方体数据,提供count计数的功能,并通过缓存立方体数据等手段对立方体数据进行计算优化[7]。将MDX语句在Mondrian中的执行结果作为Apriori算法的中间数据来源,大大降低生成候选集的运算量,提高Apriori算法运行效率。图1给出了基于OLAM模型和Apriori算法的关联分析算法的总体思路。
基于OLAM的Apriori算法的总体思路
由图中可以看出,需要首先通过配置Mondrian提供的Schema文件,将关系数据库中的维表和事实表转化成多维数据立方体,然后构造并执行MDX语句,得到多个子立方体结果,Mondrian对 MDX查询做了相应的查询优化,同时缓存了立方体的中间计算结果,对中间结果会暂时存储于内存中,这样在读取一个大的立方体时,首先会从内存中查找其子立方体,如果内存中存在该子立方体,那么就直接从内存中读取其缓存结果,避免了再次计算。对子立方体结果进行处理就可以进而得到候选项目集的支持度计数大大减少了经典的Apriori算法的计算量。另外,在实现过程中,将MDX语句得到的候选项目集及其支持度存储于哈希集合中,在算法对其进行查找时,可以利用Hash快速定位到相应频繁项集及其支持度计数,这种方法可以大大减少在生成强关联规则时的计算量。
3.基于OLAM和Apriori的关联分析算法分析
(1)多维数据立方体的建立
MDX语句的操作对象是数据立方体,首先需要经过数据预处理,完成从数据库中抽取星型模式,得到数据立方体的操作。数据仓库星型模式是建立在原始关系数据库中的,是对原始关系数据库表数据的规范和抽取。在数据抽取时需要按照一定的步骤,比如对数据量大、数据动态变化的表进行分时段进行插入、更新和删除操作,并对数据进行规则化和对异常数据清洗。最终,在事务数据库(Oracle)中抽取出维表、事实表,由这些表构成了数据仓库的星型模型,为立方体的形成奠定了基础。当星型模型建立完成之后,就可以对星型模型的维表、事实表进行配置得到数据立方体。
OLAP引擎Mondrian对数据立方体的配置是在xml文件中完成的,该xml文件又被称为Schema文件,通过Schema文件完成对 立方体各个属性的描述,与关联数据库中的表结合起来。数据立方体一旦建立完成,就可以通过MDX查询语言对其访问,而Mondrian在对立方体数据查询前,会首先加载Schema文件,可以将Mondrian的Schema文件看做是关系数据库与数据立方体之间的桥梁。图2描绘了从关系数据库到Mondrian中的数据立方体的整个处理过程:
数据立方体的构建过程
本技术所构建的两种立方体有着结构完全不同的维表和事实表。
(2)构造MDX语句
通过Mondrian的Schema文件,完成了从关系数据库到数据立方体的过渡,数据立方体建立完成后,就可以通过MDX查询语言对其进行访问。MDX是一种类似于SQL的比较灵活的查询语句。结合立方体模型的结构,通过构造与之适合的MDX语句,就可以得到相应子立方体的Count值,而通过编程实现就可以将该Count值转化为候选项目集的支持度计数。所以算法的核心的地方就是根据不同的数据立方体结构,构造出不同的MDX查询语句,通过在Mondrian的OLAP引擎中执行该MDX语句来获取相应候选集的支持度计数,进而判断该候选集否为频繁的。
(3)确定立方体
数据立方体以及该立方体对应的MDX语句的确定,可以得到中间结果提供给Apriori算法。本文构造出了两种立方体模式,并为每种立方体设计了与之对应的MDX查询语句,通过过这两种立方体模式,可以实现与Apriori算法的结合,为Apriori算法提供候选集的 支持度计数,两种立方体结构如图3所示:
两种立方体的多维表示
(4)立方体数据读取策略
将(3)中提出的立方体结构与矩阵思想结合,在计算候选集支持度计数时,只需要读取立方体数据一次,用于得到候选1-项集的支持度计数,对其余候选项集的计算都在内存中,从而比单纯使用立方体提高了算法的运行效率。
4.基于OLAM的中医针灸关联规则(OLAM_Matrix_Apriori)挖掘算法设计
(1)构造数据立方体
通过数据预处理技术对原始关系表重新构造,梳理出数据仓库的星型模式,在此基础上基于Mondrian构建了数据立方体,完成对从原始数据库到数据立方体的转化。
构造数据立方体之前,需要对原始数据库中的数据往往存在的大量噪声、数据不完整和不一致的数据进行预处理。数据质量的好坏直接影响到数据挖掘的效果,所以有必要对数据源进行清理,得到规范的维表和事实表,提高挖掘的质量和效率。目前有大量数据预处理技术,主要包括数据清理、数据集成、数据变换和数据归约[8]。
原始数据库中的表中有两列,主键和具体内容列。首先,扫描原始关系表中具体内容列,将以某种字符分割的内容存入哈希集合colHashSet,哈希集合保证了其内部所有元素都互不相同,最终得到了一个互不相同的字符集合。具体过程描述如下:
(1)for each row o in OriginalTable{
(2)将该行中的数据按字符分割成列名,存入数据colArray
(3)for each item i in colArray{
(4)将item i存入colHashSet;
(5)}
(6)}
建立维表DIM_FX,该表中只包含有一个id列,接着通过遍历得到的列名集合colHashSet,得到sql语句,向维表DIM_FX中插入数据。
(1)for each item o in colHashSet{
(2)execute sql:"insert into table DIM_FX(id)values("+o+")";
(3)}
由于哈希集合colHashSet中的列名互不相同,执行构造的sql语句可以得到一个数据互不相同的维表。同样需要注意的是,由于可能存在字符串过长而不适合建表的列名,DIM_FX的字段可以是原始表具体内容列中数据的对应值,或者有可能将多个字段看做一个字段。如果存在这种情况,需要在另外一张表中记录其与真实列名的对应关系,便于程序从这张表中读取还原信息。接着需要从原始表往改造后的关系表存入数据。循环遍历原始表,对于原始表的每一行数据,将具体内容列中数据分行存储。具体过程如下:
(1)for each row o in OriginalTable{//循环遍历原始表
(2)int i=1;//初始自增id列的值
(3)for each column c in NewFactTable{//循环遍历改造后的表中的列
(4)从column c中读取record_id存入变量record_id
(5)读取fx并进行处理得到fx集合fx_set
(6)for(item fx_single in fx_set){
(7)execute sql:"insert into NewFactTable(id,record_id,fx)values("+(i++)+","+
record_id+","+fx_single+")";
(8)}
(9)}
(10)}
至此已经将事实表和维表建立完毕,通过主关键字和外关键字联系在一起,形成“星型模式”。最终通过Mondrian的数据立方体定义模式(Schema)文件得到数据立方体。其中RECORD_ID维是“退化维”,它的维成员来源于事实表fact_table。FX维来源于维表DIM_FX,度量值仍然使用Count聚集函数。最终得到一个如图4所示的立方体"CUBE"。
立方体CUBE的多维表示
(2)构造MDX语句,从立方体数据中得到频繁项集(Frequent Itemset)
首先通过执行如下MDX语句,得到候选1-项集。对应的MDX语句为:
(1)select[Measures].[COUNT]ON COLUMNS,
(2)[RECORD_ID].[All RECORD_IDs].Children ON ROWS
(3)from[DistinctTest]
(4)where{[FX].[A]}
将得到所有候选1-项集的Count值,将执行结果存入Dij,得到的矩阵为:
(i=6,j=3)
在矩阵Dij中,每一列即为通过Mondrian从OLAP立方体中读取的候选1-项集的数据。由于实验数据中候选1-项集个数为3个,所以该矩阵共有3列。
定义如下两个函数:
1.函数fun(x):输入项集,可以输出该项集在二维矩阵中对应的向量。
2.函数supCount(a,b):输入参数a和b,其中a为项集,b为该项集的大小;输出该候选集的支持度计数。
对该矩阵的行与行相加,可以得到所有候选集的支持度计数,如得到候选2项集支持度计数的过程为:
fun({A,B})=fun({A})+fun({B})=(1,1,1)+(1,0,1)=(2,1,2)supCount({A,B},2)=2
fun({A,C})=fun({A})+fun({C})=(1,1,1)+(0,0,1)=(1,1,2)supCount({A,C},2)=1
……
fun({C,D})=fun({C})+fun({D})=(0,0,1)+(0,1,0)=(0,1,1)supCount({C,D},2)=0
……
使用2项集的结果,得到3项集的频数:
fun({ABC})=fun({AB})+fun({C})=(2,1,2)+(0,0,1)=(2,1,3)supCount(ABC,3)=2
或者
fun({ABC})=fun({AC})+fun({B})=(1,1,2)+(1,0,1)=(2,1,3)supCount(ABC,3)=2
其中候选2-项集得到候选3-项集的实现方式可能不止一种,项目更多的候选集的实现方式更多。在实现过程中随机指定即可。候选n-项集(n>=3)的实现方式依次类推。
(3)OLAM_Matrix_Apriori算法实现
OLAM_Matrix_Apriori算法将关系表转换为数据立方体,改进了Apriori算法获取频繁项集和生成候选集的步骤,具体实现为:
(1)createCube2();//对关系数据表改造,将其转换为数据立方体
(2)//扫描立方体的所有维,将其存入dimList<List>
(3)初始化L={}
(4)C1=getCandidate(1);//从立方体Dimensions集合中得到候选 1-项集C1
(5)HashMap<TreeSet<String>,int[]>vectormap=getVector();//得到候选1-项集对应的数组向量
(6)k++;
(7)while(L k-1非空){
(8)Ck=genCandidate(k);//根据频繁(k-1)-项集Lk-1,得到候选k-项集Ck
(9)for each item j in Ck{//对每一个候选集,扫描数据立方体Cube2
(10)Pk=getSupplementary(j);//得到该候选项的子集
(11)itemConf=supCount(j,Pk);//计算该候选项集的支持度
(12)if(itemConf>minsup*N){//对满足最小支持度的候选k-项集Ck元素,将其存入频繁1-项集L1
(13)将item存入Lk;
(14)}
(15)L.add(Lk);//将频繁k-项集Lk存入L
(16)}
(17)}
(18)return L//返回全部频繁项集L
其中函数createCube2()用于从关系数据库中得到数据立方体,其具体实现为:
(1)//创建事实表
(2)for each row o in OriginalTable{
(3)将该行中的数据按字符分割成列名,存入数据colArray
(4)for each item i in colArray{
(5)将item i存入colHashSet;
(6)}
(7)}
(8)建立维表DIM_FX
(9)//往维表中插入数据
(10)for each item o in colHashSet{
(11)execute sql:"insert into table DIM_FX(id)values("+o+")";
(12)}
(13)//往事实表中插入数据
(14)for each row o in OriginalTable{//循环遍历原始表
(15)int i=1;//初始自增id列的值
(16)for each column c in NewFactTable{//循环遍历改造后的表中的列
(17)从column c中读取record_id存入变量record_id
(18)读取fx并进行处理得到fx集合fx_set
(19)for(item fx_single in fx_set){
(20)execute sql:"insert into NewFactTable(id,record_id,fx)values("+(i++)+","+
record_id+","+fx_single+")";
(21)}
(22)}
(23)}
(24)配置立方体文件,得到数据立方体。//以后步骤通过MDX语句从立方体中读取支持度计数
函数getVector()得到候选1-项集对应的数组向量,并将结果存入HashMap<TreeSet<String>,int[]>vectormap,getVector()的实现过程如下:
(1)HashMap map=frequentList.get(0);//取得频繁一项集的hashmap
(2)Set<TreeSet<String>>setset=map.keySet();//得到keyset
(3)for(TreeSet<String>slicer:setset){//得到频繁2项集中的一项
(4)StringBuffer mdxbuffer=new StringBuffer();
(5)mdxbuffer.append("select{[Measures].[Count]}ON COLUMNS,"+
(6)"[RECORD_ID].[All RECORD_IDs].Children ON ROWS"+
(7)"from[DistinctTest]"+
(8)"where{"+slicer.toString().substring(1,slicer.toString().length()-1)+"}");
(9)Query query0=connection.parseQuery(mdxbuffer.toString());
(10)mdxbuffer.setLength(0);
(11)Result result0=connection.execute(query0);
(12)recordsize=result0.getAxes()[1].getPositions().size();
(13)int[]pvector=new int[recordsize];
(14)for(int i=0;i<recordsize;i++){
(15)String cellvalue=result0.getCell(new int[]{0,i}).getFormattedValue();
(16)pvector[i]=Integer.parseInt(cellvalue.equals("")?"0":cellvalue);
(17)}
(18)vectormap.put(slicer,pvector);//将Set,int[]存入hashmap
(19)}
函数getSupplementary(j)用于得到该候选项的子集,它的实现过程如下:
(1)Set<String>slicer=new HashSet<String>();
(2)TreeSet<String>slicer0=new TreeSet<String>();
(3)slicer.addAll(candidate.get(i));//得到前一项的候选项集
(4)slicer0.addAll(candidate.get(i));//用于得到候选项集的补集
(5)//获取第一个元素,重新封装成Set
(6)//初始化3个一维数组
(7)int[]firstvetor=new int[recordsize];//firstvetor用于存储第一个候选项对应的数字
(8)int[]othervetor=new int[recordsize];//othervetor用于存储第一个候选项的补集对应的数字
(9)int[]newvetor=new int[recordsize];//newvetor用于存储前两 者一维数组的和
(10)Iterator it=slicer.iterator();
(11)while(it.hasNext()){//遍历前一项候选集合中的每个String元素
(12)String s=(String)it.next();
(13)//以下过程得到候选项集的补集
(14)Set<String>set=new HashSet<String>();
(15)set.add(s);
(16)slicer0.remove(s);//得到候选项集的补集
17)}
函数supCount(j,Pk)用于计算该候选项集的支持度,具体实现过程如下:
(1)for(int p=0;p<recordsize;p++){
(2)int a=firstvetor[p];
(3)int b=othervetor[p];
(4)int n=a+b;
(5)newvetor[p]=n;
(6)if(n==k){
(7)count++;//计算频数
(8)}
(9)}
发明创造的有益效果
基于中医针灸处方主题,采用本技术建立中医针灸腧穴运用规律的挖掘模型,为中医针灸诊断的腧穴选择和运用提供决策支持。
实施例
1.实施例描述
基于中医针灸处方主题,对应的关系数据表(TZJ_DATA_PRESCRIPTION_O)如下:
ID | … | ZJCF | … |
1 | … | 心俞、膦俞 | … |
2 | … | 下管、胃俞、脾俞、下廉 | … |
3 | … | 脾俞、三焦俞、肾俞、章门 | … |
4 | … | 中封、大赫 | … |
5 | … | 中极、阴跷、腰尻交、阴交、曲泉 | … |
6 | … | 志室、胞肓 | … |
7 | … | 曲泉、阴跷、大敦、气冲 | … |
8 | … | 列缺、阴陵泉、少府 | … |
9 | … | 关元、阴陵泉 | … |
关系数据表TZJ_DATA_PRESCRIPTION_O
根据算法(OLAM_Matrix_Apriori)描述,对表TZJ_DATA_PRESCRIPTION_O进行处理,得到针灸腧穴主题的星型模式。转换过程描述如图5所示:
OLAM_Matrix_Apriori算法中针灸腧穴关联主题星型模式转换过程
2.实施结果分析:
我们知道,最小支持度越小、数据量越大,算法的运行时间越长。当固定最小支持度minsup为0.1,随着表中数据条目的增多,OLAM_Matrix_Apriori算法和Apriori算法的运行时间如下表所示:
表1实施结果对比(单位:ms)
数据量固定为5000条时,可以得到OLAM_Matrix_Apriori与Apriori算法随最小支持度变化的运行时间比较如下:
表2实施结果对比(单位:s)
通过实施结果可以看出,采用立方体结构并结合矩阵思想,将求取支持度计数的工作由从硬盘读取数据转移到从内存读取,OLAM_Matrix_Apriori算法在数据量增多时,其运行时间随着数据量的增多没有明显的增长,明显优于与它对比的Apriori算法。
对本发明应当理解的是,以上所述的实施例,对本发明的目的、技术方案和有益效果进行了进一步详细的说明,以上仅为本发明的实施例而已,并不用于限定本发明,凡是在本发明的精神原则之内,所作出的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内,本发明的保护范围应该以权利要求所界定的保护范围为准。
Claims (7)
1.一种基于OLAM的多维度中医针灸关联规则挖掘方法,通过OLAP与数据挖掘模型相结合来对中医针灸数据进行多维数据分析,实现了数据立方体和数据挖掘算法的无缝集成,其主要内容包括:
采用数据预处理技术对原始关系表进行构造,得到数据仓库的星型模式,基于Mondrian(olap服务器)构建了数据立方体,完成对从原始数据库到数据立方体的转化;
基于立方体模型的结构,通过构造与之适合的查询语句,获得立方体信息,即从立方体数据中得到候选项集、频繁项集;
通过置信度,获得相关联结果。
2.根据权利要求1所述的基于OLAM的多维度中医针灸关联规则挖掘方法,首先扫描原始关系表中具体内容列,将以某种字符分割的内容存入哈希集合,得到一个互不相同的字符集合。然后从原始表往改造后的关系表存入数据。循环遍历原始表,对于原始表的每一行数据,如果改造的表中有符合的列,则对其进行转换得到星型模式中的“事实表”。接着遍历存放列名(或其对应列)的哈希集合,根据其中的每个元素建立一个特殊的表,该表只有与改造后的事实表中列相对应的一列。最后将事实表和维表通过主外键的关联联系在一起,形成“星型模式”,得到数据立方体。
3.根据权利要求1所述的基于OLAM的多维度中医针灸关联规则挖掘方法,采用维度切片的方法计算出各维的支持度计数,从而得到全部频繁1-项集;通过循环迭代的方式从频繁(k-1)-项集中得到候选k-项集Ck,最终从Ck中搜索出频繁k-项集Lk(k>1)。
4.根据权利要求1所述的基于OLAM的多维度中医针灸关联规则挖掘方法,其特征在于,在构建数据立方体之前还包括对原始数据库中的数据进行预处理,所述数据预处理包括数据清理、数据集成、数据变换和数据归约。
5.根据权利要求1所述的基于OLAM的多维度中医针灸关联规则挖掘方法,其特征在于,所述的查询语句为MDX查询语言。
6.根据权利要求1所述的基于OLAM的多维度中医针灸关联规则挖掘方法,其特征在于,数据仓库星型模式是建立在原始关系数据库中的,是对原始关系数据库表数据的规范和抽取,在数据抽取步骤包括:对数据量大、数据动态变化的表进行分时段进行插入、更新和删除操作,并对数据进行规则化和对异常数据清洗;在事务数据库(Oracle)中抽取出维表、事实表,由这些表构成了数据仓库的星型模型,当星型模型建立完成之后,对星型模型的维表、事实表进行配置得到数据立方体。
7.根据权利要求1所述的基于OLAM的多维度中医针灸关联规则挖掘方法,其特征在于,Mondrian对MDX查询过程缓存了立方体的中间计算结果,对中间结果会暂时存储于内存中,在读取一个大的立方体时,首先会从内存中查找其子立方体,如果内存中存在该子立方体,那么就直接从内存中读取其缓存结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610390244.4A CN106095859B (zh) | 2016-06-02 | 2016-06-02 | 基于olam的多维度中医针灸关联规则挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610390244.4A CN106095859B (zh) | 2016-06-02 | 2016-06-02 | 基于olam的多维度中医针灸关联规则挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106095859A true CN106095859A (zh) | 2016-11-09 |
CN106095859B CN106095859B (zh) | 2020-04-07 |
Family
ID=57448150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610390244.4A Active CN106095859B (zh) | 2016-06-02 | 2016-06-02 | 基于olam的多维度中医针灸关联规则挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106095859B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739953A (zh) * | 2018-12-30 | 2019-05-10 | 广西财经学院 | 基于卡方分析-置信度框架和后件扩展的文本检索方法 |
CN110442653A (zh) * | 2019-07-03 | 2019-11-12 | 平安科技(深圳)有限公司 | 增量构建cube模型的方法、装置、服务器及存储介质 |
CN110688398A (zh) * | 2019-08-21 | 2020-01-14 | 西藏自治区藏医院(西藏自治区藏医药研究院) | 一种藏历天文历算的演示方法及系统 |
CN112241420A (zh) * | 2020-10-26 | 2021-01-19 | 浪潮云信息技术股份公司 | 一种基于关联规则算法的政务服务事项推荐方法 |
CN112835966A (zh) * | 2019-11-22 | 2021-05-25 | 北京金山云网络技术有限公司 | 数据查询方法、装置以及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087567A1 (en) * | 2000-07-24 | 2002-07-04 | Israel Spiegler | Unified binary model and methodology for knowledge representation and for data and information mining |
EP1222569B1 (en) * | 1999-07-21 | 2003-08-06 | Torben Bach Pedersen | Method and systems for making olap hierarchies summarisable |
CN101799830A (zh) * | 2010-03-25 | 2010-08-11 | 北京国双科技有限公司 | 可实现多维度自由剖析的流量数据处理方法 |
CN103793422A (zh) * | 2012-10-31 | 2014-05-14 | 国际商业机器公司 | 基于增强星型模型的立方体元数据及查询语句生成 |
-
2016
- 2016-06-02 CN CN201610390244.4A patent/CN106095859B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1222569B1 (en) * | 1999-07-21 | 2003-08-06 | Torben Bach Pedersen | Method and systems for making olap hierarchies summarisable |
US20020087567A1 (en) * | 2000-07-24 | 2002-07-04 | Israel Spiegler | Unified binary model and methodology for knowledge representation and for data and information mining |
CN101799830A (zh) * | 2010-03-25 | 2010-08-11 | 北京国双科技有限公司 | 可实现多维度自由剖析的流量数据处理方法 |
CN103793422A (zh) * | 2012-10-31 | 2014-05-14 | 国际商业机器公司 | 基于增强星型模型的立方体元数据及查询语句生成 |
Non-Patent Citations (1)
Title |
---|
秦锋 等: "一种基于APRIORI性质的多维关联规则挖掘算法的研究", 《安徽工业大学学报(自然科学版)》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739953A (zh) * | 2018-12-30 | 2019-05-10 | 广西财经学院 | 基于卡方分析-置信度框架和后件扩展的文本检索方法 |
CN109739953B (zh) * | 2018-12-30 | 2021-07-20 | 广西财经学院 | 基于卡方分析-置信度框架和后件扩展的文本检索方法 |
CN110442653A (zh) * | 2019-07-03 | 2019-11-12 | 平安科技(深圳)有限公司 | 增量构建cube模型的方法、装置、服务器及存储介质 |
WO2021000500A1 (zh) * | 2019-07-03 | 2021-01-07 | 平安科技(深圳)有限公司 | 增量构建cube模型的方法、装置、服务器及存储介质 |
CN110442653B (zh) * | 2019-07-03 | 2023-09-29 | 平安科技(深圳)有限公司 | 增量构建cube模型的方法、装置、服务器及存储介质 |
CN110688398A (zh) * | 2019-08-21 | 2020-01-14 | 西藏自治区藏医院(西藏自治区藏医药研究院) | 一种藏历天文历算的演示方法及系统 |
CN110688398B (zh) * | 2019-08-21 | 2023-10-13 | 西藏自治区藏医院(西藏自治区藏医药研究院) | 一种藏历天文历算的演示方法及系统 |
CN112835966A (zh) * | 2019-11-22 | 2021-05-25 | 北京金山云网络技术有限公司 | 数据查询方法、装置以及电子设备 |
CN112241420A (zh) * | 2020-10-26 | 2021-01-19 | 浪潮云信息技术股份公司 | 一种基于关联规则算法的政务服务事项推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106095859B (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kotsiantis et al. | Association rules mining: A recent overview | |
Deng et al. | PrePost+: An efficient N-lists-based algorithm for mining frequent itemsets via Children–Parent Equivalence pruning | |
Berzal et al. | TBAR: An efficient method for association rule mining in relational databases | |
CN106095859A (zh) | 基于olam的多维度中医针灸关联规则挖掘方法 | |
CN103853818B (zh) | 多维数据的处理方法和装置 | |
CN106126577A (zh) | 一种基于数据源划分矩阵的加权关联规则挖掘方法 | |
Gan et al. | Correlated utility-based pattern mining | |
Klösgen et al. | Spatial subgroup mining integrated in an object-relational spatial database | |
Subramanian et al. | UP-GNIV: an expeditious high utility pattern mining algorithm for itemsets with negative utility values | |
Pandey | Challenges of big data to big data mining with their processing framework | |
Bogorny et al. | Reducing uninteresting spatial association rules in geographic databases using background knowledge: a summary of results | |
Kumar et al. | Supporting mobile decision making with association rules and multi-layered caching | |
Prasad et al. | Frequent pattern mining and current state of the art | |
Ansari et al. | TFI-Apriori: Using new encoding to optimize the apriori algorithm | |
Singh et al. | High utility itemsets mining with negative utility value: A survey | |
Cuzzocrea et al. | Complex Mining from Uncertain Big Data in Distributed Environments: Problems, Definitions, and Two Effective and Efficient Algorithms | |
Jay et al. | Using formal concept analysis for mining and interpreting patient flows within a healthcare network | |
Ikeda et al. | A model for object relational OLAP | |
Usman et al. | Multi level mining of warehouse schema | |
Necir | A data mining approach for efficient selection bitmap join index | |
Amin et al. | Extracting top-K interesting subgraphs with weighted query semantics | |
Sun et al. | Transaction-item association matrix-based frequent pattern network mining algorithm in large-scale transaction database | |
Sharafeldeen et al. | ISTMINER: Interactive Spatiotemporal Co-occurrence Pattern Extraction: A Biodiversity case study | |
Kumar et al. | A Survey on Association Rule Mining Algorithms for Frequent Itemsets | |
Bimonte et al. | Integration of spatial networks in data warehouses: a UML profile |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |