数据预处理是对Web日志进行挖掘的首要前提,它关系到接下来挖掘算法的选取,是最终能否得到有较高效率模式的前提。Web日志文件中存储的是用户访问站点信息的原始记录,这些数据是不完整的(有些感兴趣的属性缺少属性值,或仅包含聚集数据),含噪声的(包含错误或存在偏离期望的孤立点值),并且是不一致的,因此直接在这些数据上进行挖掘是比较困难的。在使用算法或工具对其分析之前,进行预处理,不仅有利于随后的挖掘算法分析,而且对于最终形成准确可靠的用户浏览模式是极为重要的。
Web日志挖掘的数据预处理主要包括数据清洗、用户识别、会话识别、路径补充和事务识别等一系列工作,对日志进行预处理的结果直接影响到挖掘结果。
http://s1/middle/4b28b6d3t6a62b977a720&690
1、数据清洗
数据预处理的首要任务就是数据清洗。数据清洗就是删除Web日志记录中与数据挖掘不相关的数据,把Web日志转化为时间数据挖掘的可靠的精确数据。主要以下类型数据[2]:
●多媒体文件(*.GIF、*.SWF、*.JPG、*.MIDI、*.MP3、*.AVI等)以及Java
applet文件、JS脚本文件、CSS层叠式样式表文件等的记录。
●弹出式广告的记录;
●框架网页中子网页的请求记录;
●搜索引擎Robot和离线浏览软件对网站的访问所产生的记录;
●产生错误的访问记录;
当然,如果那些多媒体文件并非是网页自动下载的,而是需要用户点击才能浏览欣赏,则这些访问记录不能删除。针对上述的几个方面,下面[2]分别进行讨论:
①与Web日志挖掘目的无关的记录
在数据清理时,首先结合网站的拓扑结构,通过检查URL的后缀名,删除认为不相关的文件。
②弹出式广告的记录
上网的同学都有过这样的经验,当进入某网站首页时,立刻会弹出一个窗口,或者是在点击某个链接的时候,通常在这个窗口中会显示一些注意事项、版权信息、警告、欢迎光临之类的话或者作者想要特别提示的信息。这种信息是强迫性的,并不能表达用户的兴趣偏好。因此,通过分析页面HTML的源文件中的window.open来寻找对应的弹出页面的URL,从而删除该页面。
③框架网页过滤
框架网页包括普通的框架(FrameSet)和浮动框架(Iframe)。通过对日志文件的分析,可以发现框架网页的特点是:当用户点击包含框架的网页时,该框架网页中的每一个子框架中的网页也会自动下载,而且下载的时间顺序和该网页的HTML中包含3个子框架页left.htm、middle.htm、right.htm,如图2.3.2-2。当请求index.htm时,在服务器日志形成了4条访问记录,其中包含1条用户请求index.htm的记录,3条分别是浏览器自动请求left.htm、middle.htm、right.htm产生的记录。
http://s15/middle/4b28b6d3t6a62b98713de&690
Web日志挖掘的目的是发现未知的用户行为模式,而Frame与Subframe和Iframe之间的关系是已知事实,因此应当消除Frame页面对挖掘算法的影响,发现用户真正感兴趣的挖掘结果。其过滤的具体方法如下:
对站点中的页面,通过分析HTML源文件,找出框架网页,并顺序找出其中子框架的URL,形成框架关系表,形式为<主框架页面,子框架1,…,子框架n>。例如:<index.htm,left.htm,middle.htm,right.htm>。对日志按IP地址、agent、time分别作第一、二、三关键词排序。扫描每一个访问记录的URL,若是框架网页,则根据框架关系表,删除其紧跟后面的子框架url的记录。注意,只能删除一次。
④错误的访问记录
当服务器对用户发出的请求相应失败时,Web日志同样会记录这种情况,但这对Web日志挖掘没有意义。所以在进行数据清理的时候,通过日志中的状态码删除服务器对请求响应失败的的记录。
以下是经过数据清洗后的部分日志文件:
http://s16/middle/4b28b6d3t6a62b9872caf&690