搜索
您的当前位置:首页正文

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(diassign=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.nec.com/kamdar00creating.html.2002

[2]Bucbber AG,Anandss,MulvennaMD,et al.Discovering Internet Marketing Intelligence Through Weblog Mining [EB/OL].http://citeseer.nj.nec.com/244461.html,1998

[3]张健沛 刘建东 杨 静:基于Web的日志挖掘数据预处理方法的研究[J].计算机工程与应用,2003(10):191~193

“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”

因篇幅问题不能全部显示,请点此查看更多更全内容

Top