当前位置:文档之家› 基于关联规则的日志分析系统的设计与实现

基于关联规则的日志分析系统的设计与实现

第44卷 增刊厦门大学学报(自然科学版)Vo l.44 Sup. 2005年6月Journal of Xiam en U niversity (Natural Science)Jun.2005基于关联规则的日志分析系统的设计与实现收稿日期:2005 01 21基金项目:福建省自然基金项目(A0310008),福建省高新技术研究开放计划重点项目(2003H 043),厦门大学中央行动计划院士基金项目(X01122)资助作者简介:文娟(1982-),女,硕士研究生.文 娟,薛永生,段江娇,王劲波(厦门大学计算机科学系,福建厦门361005)摘要:网上广告势必成为中国广告业不可取代的部分,广告人总是期望广告能获得最好的效果.为此,本文设计并实现了一个基于关联规则数据挖掘的日志分析系统,数据挖掘引擎在实现过程中针对挖掘数据的特点对A prior i 算法进行了改进,并通过仿真数据库对挖掘结果进行了验证,日志分析系统获得的 知识 可以直接用于改善Web 的信息服务.关键词:日志分析系统;数据挖掘;关联规则中图分类号:T P 311 文献标识码:A 文章编号:0438 0479(2005)Sup0258 04 数据挖掘技术在科学发现、商业应用、市场营销、金融投资等领域都有广阔的应用前景.目前,大型数据挖掘系统有Intelligent Miner,SPSS,DBM iner 等,国内也有研究[1,2],但是,这些大型的数据挖掘系统功能布局相对不合理,并且价格昂贵,当实现某些行业的某些特定目的的数据挖掘时,没有突出的特色.网上广告已经成为广告业中不可忽视的部分,这涉及如何从网站上丰富的数据中提取有效信息的问题.W eb 日志挖掘可以发现用户的浏览模式,用于改进Web 服务器的设计以方便用户使用和提高Web 服务器的性能,增加个性化服务和在电子商务中发现潜在的客户群等.目前用于Web 日志挖掘的关联规则算法有FP [3],Tv p [4],Apriori [5]等.本文以邮政网络的日志分析为例,实现了基于Aprior i 算法的关联规则的分析系统,对网站日志进行挖掘分析,得到网页组相应的最大频繁项集,即商家决策者所感兴趣的 黄金网页组合 ,据此改善Web 的信息服务,有效地提高网站的效益,同时在实现过程中针对挖掘数据的特点对Apri o ri 算法做了一些改进,并通过仿真数据库对挖掘结果进行了验证.1 日志分析系统的基本模块本文基于关联规则的日志分析系统是专门为邮政部门优化网络系统开发的.该系统分为数据预处理,数据挖掘和知识转化3个模块.数据预处理模块将原始日志文件先导入数据库管理系统SQL Ser ver 2000中,然后数据过滤得到用户会话文件,即数据库的表,最后生成布尔型事务数据库,事务数据存于文本文件中;数据挖掘引擎采用关联规则中的经典算法Apriori 算法实现,并针对挖掘数据的特点对Apiro ri 算法进行了改进;知识转化模块将挖掘得到最大频繁项集及相关信息转化成知识,生成强关联规则,网站设计者可根据这些强关联规则改善信息服务.整个系统的模块结构如图1所示.图1 日志分析系统的模块结构F ig.1 M odule structur e of W eblog analysis system2 日志分析系统的具体实现2.1 数据预处理数据预处理一般根据具体源数据的数据要求进行再加工,如检查数据的完整性及数据的一致性,对丢失的数据进行填补,消除 脏 数据等.常见的预处理方法有:数据清理、数据集成、数据变换和数据归约.该系统的数据预处理不仅面临数据清理问题,还需要将数据转化成数据挖掘引擎需要的数据形式,即如何将源数据转换成事务数据库的问题,所以,预处理分为数据导入,数据清理和生成布尔型事务数据库三步来实现.2.1.1数据导入和清理挖掘的原始日志数据如下,且保存在文本文档中.例:2003 03 3100:00:16211.147.212.111 192.168.0.2 80G ET/pubser v/scr ipt s/yo uchu/pos.asp 200M o zilla/4.0+ (compatible;+M SIE+5.5;+W indow s+N T+5.0)+Fetch+ AP I+Request我们使用SQL Server2000作为数据库管理系统,它的集成工具数据转换服务DT S可实现数据库迁移.DTS能合并SQL Serv er2000、ORACLE、DB2、文本文件、EXCEL、ACCESS、PARA DOX等各种不同数据源的数据,并且可以在迁移的同时实现对数据的过滤和清理.利用DTS的导入向导将邮政网络所提供的日志数据源先全部导入数据库dw的表t_dw_log中,其实,还可以编写导入的DT S包或者存储结构,都有一次编写、多次使用的优点.分析数据库dw中数据源表t_dw_log中的各属性,只留下对日志挖掘有贡献的属性域c_date、c_ tim e、c_ip和cs_uri_stem.可以直接通过SQ L语言实现对数据源表t_dw_log的清理,过滤掉对挖掘没有意义的属性列,也可以编写DT S包过滤源数据,利用DT S提供的工具 执行SQ L任务 ,执行DTS包,得到数据清理后的表t_w eblog.该DT S包可重复使用. 2.1.2生成布尔性事务数据库根据邮政部门的实际需求,在将数据库dw中的表t_w eblog转化成布尔型事务数据库时,处理方法为:(1)从表t_w eblog中选择出访问率高于给定支持度的的网页作为研究对象.(2)将访问记录整合成事务,整合规则:如果同一个ip的相邻的log记录时间相差不到半个小时,那就可认为是同一个事务.将访问记录整合成事务还可以采用其他的方法,如Rough Set.(3)最后,将每个事务对属于研究对象的网页的访问情况记录下来,生成布尔型事务数据库.整个数据预处理模块构造在数据库关系系统SQ L Ser ver2000上,用Delphi实现.该可执行程序中通过ADOConnectio n控件建立与数据库的连接,通过ADOQuery控件进行对数据库的SQL操作,可移植性强.程序运行生成布尔型事务数据库,同时,还将生成数据挖掘算法的入口参数文件,以及访问率高于给定支持度的网页网址的文本文件.2.2 数据挖掘数据挖掘模块中要实现关联规则的找寻,即找到相应的频繁集.数据挖掘引擎采用关联规则中的经典算法Apriori算法,并针对挖掘数据的特点对Apiror i 算法进行了改进,为了提高数据挖掘工具的效率和可移植性,整个数据挖掘引擎用Jav a实现.2.2.1Apriori算法Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集算法.它使用一种逐层搜索的迭代方法,利用k 项集探索(k+1) 项集.首先,找出频繁1 项集的集合.该集合记作L1.L1用于找频繁2 项集的集合L2,而L2用于找L3,如此下去,直到不能找到频繁k 项集为止.为了提高逐层产生频繁项集的效率,可用Apriori性质压缩搜索空间,即:频繁项集的所有非空子集都必须也是频繁的.将Apriori性质用于算法中,由频繁项目集L k-1生成候选项目集C k分成两步进行:第一步:连接步.为找L k,通过任意两个满足条件的L k-1连接产生候选k 项集集合,记作C k.不妨设l1和l2分别是两个不同L k-1中的项集.记号l i[j]表示l i 的第j项.为方便计,假定事务或项集中的项按字典次序排序.如果该两个不同L k-1的前(k-2)个项都相同,则说明该两个频繁项目集L k-1是可连接的,执行连接L k-1 L k-1(其中L k-1的元素是可连接的).即两个不同的L k-1对应的项集l1和l2满足条件:(l1[1]=l2[1]) (l1[2]=l2[2]) (l1[k-2]=l2[k-2]) (l1[k-1] l2[k-1])连接L k-1 L k-1产生的结果项集是:l1[1]l1[2] l1[k-2]l1[k-1]l2[k-1].第二步:剪枝步.扫描数据库,确定C k中的每个候选项集的计数,从而确定L k.然而,当C k中的候选项集的数目很多时,涉及的计算量就很大.为了提高效率,可用A priori性质压缩C k,即任何非频繁的 项集都不可能是频繁(k-1) 项集的子集,可得:如果一个候选k 项集的(k-1) 子集不在L k-1中,则该候选项集也不可能是频繁项集,便可将它从C k中删除.这种子集测试可使用所有频繁项集的散列树快速完成.2.2.2Apriori算法的改进及实现定义1 超集,如果存在有序集合{X1,X2, , X n},它的任意子集{X j, ,X k}(其中k j),那么该子集对应的超集为{X j, ,X k,X k+1},{X j, ,X k, X k+2}, ,{X j, ,X k,X n}.例:有序集合{1,3,4,6,7}的子集{1,4},对应的超集为{1,4,6}和{1,4,7}.定义2 T扫描数据库,为找C k扫描数据库时,当事务数据库中某条事务的代数和小于k时,跳过该条数据,这种扫描方式就称为T扫描数据库.这样,第k+ 1次扫描事物数据库D时需要扫描的事务数相对第k 次一般是减少的,而且k越大,扫描事务数据库的效率也提高得更明显.例如:为找3 项集时,扫描数据库时遇到事务{010010},由0+1+0+0+1+0=2<3,跳过该事务往下处理其他事务,为找4 项集时,就不需要再扫描该事务了.259增刊 文 娟等:基于关联规则的日志分析系统的设计与实现针对挖掘的数据库的特点,对原A priori 算法作了改进,由频繁项目集L k-1生成候选项目集C k 分成如下三步进行:第一步:生成超集.为频繁项集L k-1中的每一个频繁项生成对应的超集,这些超集的构成的集合即为初步的候选项目集C k ;第二步:运用Apr io ri 性质对第1步所得到初步候选项目集进行剪枝.第三步:T 扫描数据库D.计算出候选项目集C k 中的每一个候选项集的支持数counter,根据counter minsup*总事务数,进行剪枝得到k 频繁项集(minsup 表示最小支持度);为了提高基于Apriori 算法数据挖掘引擎的可移植性,采用Java 实现算法.算法1:改进过的Apriori 算法.输入:事务数据库D ,相关参数(项目数,事务数,最小支持度).输出:D 中频繁项集和和对应的支持度.[1]L 1=hashtr eer oo t; //找出1 itemset(D )[2]fo r {k =1;L k -1 ;k ++[3]tr ansatr ahashtree(ro ot); //T 扫描事务数据库[4]checkcount er(roo t);//较检htn.counter >=minsup*总事务数,剪枝[5]C k =checkhashtree(roo t); //生成候选项目集[6]checkcount edall(roo t); //确认itemset 已经被co unt [7]}[8]printhashtree(r oo t);//输出hashtr ee 上的所有频繁项集合项集的支持度[9][10]checkhashtree(roo t){[11]gensuperset(itemset); //为项集生成超集,实现连接[12]gensubset(itemset); //生成子集[13]circlefo und(r oot); //根据Apr ior i 性质,剪枝 }在算法中采用hash tree 存放候选集,树的叶子节点存放项集的列表和支持度,内部节点是一个hash 表.若图2所示事务数据库D ,且其支持度为50%,则改进后的Apriori 算法运作情况的示例如图2.程序运行时,将布尔型事务数据库生成程序所得到的事务数据库D 和相关的参数以tr anbool.tx t 和outparam.txt 的文本的形式装入,运行结束后,在控制台上将显示结果.2.2.3对数据挖掘引擎的检验我们对数据挖掘引擎进行检验.首先,使用仿真数据库对本文所实现的数据挖掘引擎的挖掘算法的正确性进行检验.将图2所示的事务数据库D (支持度为50%)存入sampletran.txt 中,相应的数据挖掘参数存图2 改进后的Aprior i 算法运作情况的示例 F ig.2 Run instance o f adv anced Apr ior i alg o rithms入sampleconf.tx t 中,放于编译通过的class 文件夹下,执行后得到的各频繁项集以及各项集的支持数,和手工计算得到的结果是一致的.同样,对其他的仿真数据库也做同样的检验,都得到一致的结果.这说明了优化后的Apriori 算法的正确性.其次,对数据挖掘引擎的挖掘效率进行测试.鉴于商业数据的不便公开,只取邮政网络服务器3天的日志数据作为实验公开数据,将3天的日志数据分成第1天(391条事务记录)、前2天(812条事务日志)和3天(1287条事务日志),并分别对应着图3横坐标中的1、2和3.基于相同的硬件环境及软件环境对Apriori 算法和优化后的算法进行挖掘效率的测试,测试结果如图3.从图3中可以看出,随着数据库的增大,优化后的算法在速度上体现的优势也逐渐增大,这跟理论的分析结果是一致的.2.3 知识转化知识转化模块将数据挖掘引擎对日志数据进行挖掘得到的频繁项集及其支持数,转化成 知识 ,产生强关联规则,供网站设计者改善Web 的信息服务时使用.置信度由以下公式(1)计算而得,其中条件概率用260 厦门大学学报(自然科学版) 2005年图3 两种算法的速度对比测试Fig.3 T he speed test betw een tw o algo rithms项集支持度计数表示,公式中的suppout_count (A B)是包含项集A B 的事务数,suppout_count (A )是包含项集A 的事务数.confidence (A B)=(P )(A |B )suppo ut_count(A B )suppo ut_count (A )(1)根据(1)式,关联规则可以产生如下:对于每个频繁项集l,产生l 的所有的非空子集.对于l 的每个非空子集s,如果P (l |s) m in _conf ,则输出规则 s (l |s) .其中,min_conf 是最小置信度值.Weblog Analysis System Implemented on Association RuleWEN Juan,XU E Yong sheng,DU AN Jiang jiao,WA NG Jin bo(Department of Computer Science,Xiamen U niver sity,Xiamen 361005,China)Abstract:In t he market o f china adver tising,there is no do ubt that advert isements by internet will play an indispensable ro ll in thenear future.Adver tisers all focus o n how to g ain the g reatest eff iciency.In t his paper a W eblog analysis system was implemented mainly based on associatio n rule,and the Apr ior i alg or ithms was impr oved.I t w as t ested by a manual database.T he know ledge pro vided by the sy stem can be used dir ect ly to impr ove the infor matio n serv ices of web.Key words:Weblog analy sis sy stem;data mining;asso ciation r ule频繁项集连同它们的支持数预先存放在散列表中,执行挖掘后便可一同输出.对邮政网络服务器的日志数据挖掘后得到的频繁项集l ={4,6,7},它的非空子集有{4,6},{4,7},{6,7},{4},{6},{7}.结合散类表中提供的支持数,可以得到的关联规则以及它们的置信度如下:Ⅰ4 6 7,co nfidence=265/307=86.3%Ⅱ4 7 6,co nfidence=265/285=93.0%Ⅲ6 7 4,co nfidence=265/272=97.4%Ⅳ4 6 7,co nfidence=265/334=79.3%Ⅴ6 4 7,co nfidence=265/333=79.5%Ⅵ7 4 6,co nfidence=265/391=67.8%由于规则是由频繁项集产生的,每个规则都自动的满足最小支持度.现在它们的置信度如上,再综合1~10所代表的网页进行分析,如式Ⅰ说明了同时访问4,6和7网页的用户占全部用户的20%以上,访问了4和6网页的用户有86.3%的可能会访问7网页.这些规则代表了用户的浏览模式,网站设计者可以利用这些知识优化网站结构以方便用户使用和提高Web 服务器的性能,增加个性化服务和在电子商务中发现潜在的客户群等功能.广告商家则可以利用这些黄金网页组合 使广告达到最好的效果,带来更大的经济收益.3 结束语本文实现的日志分析系统是根据邮政部门的数据专门设计的,具有很好的可移植性.数据挖掘引擎部分采用Apr io ri 算法,在实现过程中有所改进,并从理论和实验两方面对其检验,引擎用Java 实现,所以还可单独将数据挖掘引擎嵌入网页中使用.日志分析系统课题还可以应用数据挖掘方法中包括挖掘关联规则、对数据进行聚类分析等其它数据挖掘技术结合,形成完整的工具.其次是对递增计算的处理,随着数据频繁地增加,实现增量式计算是今后研究的一部分;最后智能化调整也是有待于研究的问题,如阙值、算法的智能化选择.参考文献:[1] 朱扬勇,周欣,施伯乐.规则型数据采掘工具集A M IN ER[J].高技术通讯,2000,10(3):19-22.[2] 陈栋,徐洁磐.Knig ht:一个通用知识挖掘工具[J].计算机研究与发展,1998,35(4):338-343.[3] Han J W,Pei J,Y in Y W.M ining frequent pat terns witho ut candidate generation:A frequent patt ern t ree appro ach [EB/O L ].htt p://ww w.sce.car leton.ca/facult y/ajila/5703/Database M ining/F tr ee m ining.pdf.2000.[4] Chen M S,Par k J S,Yu P S.Efficient data mining fo r path trav ersal patter ns [J].K no wledg e and Data Eng ineering ,1998,10(2):209-221.[5] Ag r awal R,Sr ikant R.Fast algo rithms for mining associat ion r ules [EB/O L ].http://w ww.almaden.ibm.co m/so ftw are/quest/Publicatio ns/papers/vldb94.pdf.1994.261 增刊 文 娟等:基于关联规则的日志分析系统的设计与实现。

相关主题