Web日志挖掘中的数据预处理研究.doc
文本预览下载声明
Web日志挖掘中的数据预处理研究
摘要:Web日志信息的预处理是Web日志挖掘任务中的重要阶段,是整个Web日志挖掘过程的基础和实施有效挖掘算法的前提,在Web日志挖掘中起着重要的作用,也是工作量较大的一部分。数据预处理的基本技术,包括数据清理、数据集成和转换、数据归约等。本文介绍了数据预处理中涉及到的数据清理、用户识别、会话识别、路径补充、事务识别等过程,并提出了一种路径补充算法。
关键词:Web日志;数据预处理;用户会话;路径补充;事务识别
中图分类号:TP311文献标志码:A 文章编号:1009-3044(2008)14-20789-03
1 引言
存在不完整、含噪声的和不一致的数据是大型的、现实世界数据库或者数据仓库的共同特点。不完整的数据的出现可能有多种原因,如收集不全,或者感兴趣的数据很难得到等。数据含有噪声(具有不正确的属性值)可能由于收集数据的设备出现故障,或者是数据传输中出现错误。在含有噪声的数据上进行数据挖掘可能得到错误的结果。因而在进行数据挖掘之前我们必须对数据进行预处理,以消除数据的不完整性、噪声和不一致性。数据预处理的过程见图1。
2 数据预处理步骤
2.1 数据清理
数据清理过程中试图填充空缺的值,识别孤立点、清除噪声,并纠正数据中的不一致性。由于Web服务器纪录了很多用户不关心的信息。数据清理阶段就是要删除Web日志中与挖掘目的不相关的数据和记录,为后面的用户会话识别和事务识别做好准备工作。
由于Web日志挖掘主要是对Web用户使用行为的研究,所以只有利用准确描述用户浏览行为的数据进行挖掘,才能发现正确的规则和模式。因为用户在发出html的请求时,会发出对包含在页面中的图片及音乐等次要元素的请求,而Web服务器都会为此做记录,所以数据清理阶段通过检查URL的后缀删除不相关的数据,把后缀名为GIF、JPEG、JPG、JPEG、JPG、SWF、CSS、JS和MAP的请求项删除。值得注意的是,当服务器对用户发出的请求响应失败时,Web日志同样会记录这种情况,但这对Web日志挖掘没有意义,可以采取在数据清理过程中通过检测日志中的状态码来删除服务器对请求失败的记录。
2.2 用户识别
用户识别的目的是要分辨出每个访问网站的用户,但由于本地缓存、防火墙还有代理服务器的存在使得过程变得复杂。解决的办法可以通过对用户行为进行跟踪,一般最常使用的技术是基于日志/站点的方法,并辅助一些启发式规则来识别用户,概括起来就是:若没有证据表明是不同的用户,就认为是同一用户。最常用的一个规则是:若访问用户的IP地址相同,但是相应的代理日志中如果显示访问用户的操作系统不同或者是浏览器类型不同,则认为他们来自不同的用户。另一个规则是:将用户的访问日志、引用日志和站点的拓扑结构结合起来,构建出用户的浏览路径,如果当前的请求页面同用户已浏览的页面之间没有超链接关系,那么就认为存在相同IP地址的不同用户。
2.3 会话识别
一个会话是指用户对服务器进行访问时一串顺序的页面请求,即用户连续访问的具有一定目的性的页面序列。用户会话识别就是将用户的多条访问日志记录分为单个的会话。
目前用户会话的表示方法主要有两种方法:一种是将会话简单地表示成访问页面的集合[1,2],其优点是算法思想简单、直观。另一种方法在集合表示的基础上,加上了用户访问的时间信息,将用户会话看成是访问页面所形成的一个页面序列[3,4]。
定义1 用户会话S是一个二元组,其中userid是用户标识,RS是用户在一段时间内请求的Web页面的集合。
RS包含了用户请求的页面的标识符Pid和请求的时间t,用户会话S可以表示为如下的元组。
S= (1)
其中tk表示页面Pidk的访问时间。通过用户识别,可以得到关于用户的访问web页面的一个序列,然后可以通过设定超时的方法识别用户会话。这里有两种方法[5],一种方法是设定整个用户会话时间间隔T,使得tk-t1≤T。另一种方法就是缩小范围,设定相邻请求之间的超时时间,如果两个页面请求时间的差值超过设定的界限值就认为用户开始了一个新的会话。(1)式中的用户会话要满足下面的条件(其中T为设定的超时界限值):
ti-ti-1≤T,1iK (2)
现在常采用第二种方法来进行超时设定。基于以上的思想,可以用如下伪代码算法过程来识别用户会话:
输入:经过数据清理后的日志集合Cleaned_Data,会话的超时设定值T。
输出:经过识别得到的会话集合Recognized_Session,在算法开始时将Session集合初始化为空。
算法如下:
RecognizeProgress
显示全部