WEB日志数据预处理算法研究与实现是小柯论文网通过网络搜集,并由本站工作人员整理后发布的,WEB日志数据预处理算法研究与实现是篇质量较高的学术论文,供本站访问者学习和学术交流参考之用,不可用于其他商业目的,WEB日志数据预处理算法研究与实现的论文版权归原作者所有,因网络整理,有些文章作者不详,敬请谅解,如需转摘,请注明出处小柯论文网,如果此论文无法满足您的论文要求,您可以申请本站帮您代写论文,以下是正文。
[摘 要] Web日志挖掘是Web数据挖掘研究领域中一个最重要的应用方面。而数据预处理在Web日志挖掘过程中起着至关重要的作用。文中深入探讨了数据预处理各环节的主要任务,提出了一种数据预处理算法,并实现。实验结果表明,本算法能很好的分割服务器日志为单独的用户和用户会话模式。
[关键词] Web日志挖掘 数据预处理 算法 一、引言 在Web数据挖掘中,最重要的应用是Web日志挖掘,即通过挖掘服务器的日志文件,得出用户的访问模式,从而可以进一步分析和研究日志记录的规律,来改进网站的组织结构及其性能,构造自适应网站;还可以通过统计和关联分析,增加个性化服务,发现潜在的用户群体,这在电子商务等领域是很有市场的。 Web日志挖掘主要分为三个步骤: 1.数据预处理 根据挖掘的目的,对原始Web日志文件中的数据进行提取、分解、合并,最后转化为适合进行数据挖掘的数据格式,并保存。 2.模式识别 运用各种算法对处理后的数据进行挖掘,生成模式。 3.模式分析 进行用户访问模式的分析,从而将有价值的模式提取出来的过程。 其中,数据预处理这个环节是整个过程的基础和实施有效挖掘算法的前提。本文深入探讨了数据预处理各环节的主要任务,并提出了新的数据预处理算法,实现之。 二、Web日志预处理过程 Web服务器日志中的内容非常丰富,而且用户访问和服务器资源不是一对一的关系,比如,服务器端日志可能记载了一个用户可以在多个客户端提交请求,多个用户也可以在一个客户端提交请求。因此,在实施数据挖掘之前,首先必须对Web log 文件进行数据清洗、用户识别、会话识别、页面过滤、路径补充等一系列的工作。 1.数据清洗 是指删除Web日志中与数据挖掘不相关的冗余项,同时将有用的Web日志记录信息转换为适当的数据格式。 2.用户识别 是指从日志中的每一条记录中识别出相应的用户。 3.会话识别 就是将用户的访问记录划分成单个的会话,不同用户访问的页面属于不同的会话。 4.路径补充 根据引用日志和网络拓扑结构提供的信息对用户访问路径进行完善,推断出用户从访问缓存中访问的页面信息。 三、数据预处理算法实现 1.概念定义 进行操作的数据源是服务器端的日志文件。现将服务器日志中的每一个记录用一组数学符号来表示如下: 定义1:服务器日志中的一个页面视图L可用如下的符号定义: L=[A∶V] V= A={a1,a2,…,ak} 每一个页面视图包括一个页面的定义vi(通常为这个页面Url),参考页面文件ri(通常为这个页面的Referer),访问时间ti(通常为这个页面的Data或叫Time),至于{d1,d2,……,dm}则为客户端向服务器通过表单发送的数据项及值对。 定义2:日志中的记录经过预处理过以后,所形成的单个用户对单个站点的一次访问的数据定义如下: 设L是服务器日志文件中记录的集合,其中的每一个记录L均适合上面定义的记录的格式,这里L∈L。每一个L包括客户端IP地址L.IP,客户端浏览器L.agent,客户端访问的页面的Url为L.url,访问页面时间L.time 等。则用户的一次会话或叫事务t为下式: t= 这里满足:1≤k≤m,ltk∈L,ltk.ip=ipt,ltk.agent=agentt 2.具体的算法实现 (1)数据清理,简单的就是检查每一个日志记录L的Url的扩展名,消除扩展名为gif,jpg,jpeg的日志记录就可以了。 (2)首先将原日志文件划分成相同的IP和Agent的用户访问的序列集的形式,集合中的每一个序列形如Hi={f1,f2,…,fn},每一个Hi执行算法(3)。 (3)将相同的IP和Agent的用户访问序列划分成用户的一次访问序列。 ①主程序 输入:经过清洗过的日志记录L。 输出:用户会话文件 对于每一个Hi={f1,fn,……fn}是一个时间序列的日志记录集,其中lj,fj,rj,tj分别定义日志记录的页面视图,Url,Referer,访问时间Time。 定义T为一个时间戳: for each unique IP/Agent Pair do for each lj do if((tj-tj-1)>T)∨rj∈Hthen f Timeout()then i++; Add lj to Hi else assign=Distance(H,rj) add rj to Hassign // Hassign是包含rj页面视图的序列集中,rj距离最短的那个序列集 end. ②Timeout()函数 此函数完成的主要功能是测试包含lj的请求页的rj页,在Hi中是否已经过时了,也就是是否已经大于T。如果大于T返回真,否则返回假。 value=true; For each Hi∈H do If lj∈H If(tj-tj-1)∈T value=false end return value ③Distance(H,rj)函数 Distance(H,rj)函数主要是计算页面的距离函数,当一个日志记录视图的参考页面rj为不同的Hi所包含时,确定该页面文件是属于那一个序列集。 对于每一个Hi={f1,f2,…,fn}是一个时间序列的日志纪录集,设f是一个日志记录文件: set min=∞ // 设置页面距离; for each Hi H do if rj Hi di=Hi.size()-Hi.index(),//计算页面距离;Hi.size()序列集的总页数Hi.index()该请求页在序列集中的位置; ti=hi.tn-Hi.tj if(di assign=i min=di else if(di=min) if(ti=tassign) assign=i tin=tj return assign end 四、实验结果 本文引用南京工业大学网络中心的2005年5月24日的日志文件542条日志记录作为实验数据,其实验结果如下: 1.日志数据 #Fields:date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent)sc-status sc-substatus sc-win32-status 2005~05~24 00:19:13 202.119.248.87 GET/styles/default.css-80-218.13.136.59 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0;+Poco+0.31;+TencentTraveler+) 200 0 0 ………. 2005~05~24 23:54:12 202.119.248.87 GET/images/weather/0.gif-80-218.58.78.114 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+Maxthon) 200 0 0 2.运行结果 经过数据预处理,共有77个不同的IP用户,共包括111段会话。实验证明,此算法效果良好。 3.运行界面剪切如下: 五、结论 由于日志文件不同于传统的数据库文件,所以其预处理方法也有明显的差别。本文深入讨论了对Web日志文件进行数据清洗、用户识别、用户会话识别、路径补充等预处理方法,并实现。实验结果表明,本算法能很好的分割服务器日志为单独的用户和用户会话模式。 参考文献: [1]KamdafT JoshiA:On Creating Adaptive Web Servers Using Weblog Mining [EB/OL].http//:/citeseer.nj./kamdar00creating.html.2002 [2]Bucbber AG,Anandss,MulvennaMD,et al.Discovering Internet Marketing Intelligence Through Weblog Mining [EB/OL].http://citeseer.nj./244461.html,1998 [3]张健沛 刘建东 杨 静:基于Web的日志挖掘数据预处理方法的研究[J].计算机工程与应用,2003(10):191~193 |
|