3 Web日志挖掘的预处理技术
聚类是将复杂的事物分门别类,并对陌生繁乱的事物进行归类总结,相同类别的事物采取类似的处理方法,这样就能大大提高事物的处理效率,通过自动聚类能够识别对象空间中不同密度空间的区域,从而发现全局分布模式,并结合蚁群算法的正反馈、鲁棒性、分布式计算等优点,对聚类模型进行设计。
3.1 聚类模型分析
聚类分析在Web日志挖掘中是一个很重要的技术。聚类分析可以增强对象集的可理解性,并发现对象集中数据间共同的结构和联系,保持其有效性。即按照一定的规律和需求,将一些特殊分散的对象按照其相似性进行分类,并使得对象点的集合分成若干类,且每个类中的对象点最大程度地相似,各个类之间的对象点最大程度地不同。在聚类分析过程中没有涉及关于分类方面的知识,只是依靠对象点间的相似度作为划分类的依据,因此聚类分析是一种观察式学习,是利用数学方法研究和处理所给定对象的分类,其多元的统计分析方法是统计模式识别中非监督模式识别的重要分支。为了描述对象样本间的距离,特引入特征变量类型和相似性度量这2个概念。
(1) 特征变量类型
为了描述一个对象样本,我们通常会对对象进行特征抽象化,使用多个特征指标变量来给予每个对象一个特征向量。特征指标变量可以分为:间隔标度变量、二次变量、序数变量,处理不同类型的特征指标变量则采取不同的策略。
对于间隔标度变量是使用连续的实数来表示的数量信息,一个样本点可以看作是多维空间中的一点,通过一些特殊的运算来求解各个样本在空间上的距离。对于二元变量,用两种状态(0或1)来表示样本属性,1表示变量出现,0表示变量不出现,该变量特征也可以用来分类变量尺度,标记多状态。对于序数变量,它类似于分类变量,不用于分类变量的是,其状态时无序关系的,而分类的状态是有序的。对于这两种特征变量我们不能定义合适的数学运算,需要通过特殊变换后才能进行对象相似度计算。
(2) 相似性度量
为了更好地描述对象集中的单个样本,需要样本类型中的特征指标变量提供度量值,同样为了描述样本间的相似特性,也需要定义能合理地衡量样本间相似程度,从而合理地进行聚类的度量,以便把相似的样本归为一类,非相似的样本
归为不同的类。常用刻画样本间的相似性函数有2种,分别是:相似系数函数、距离函数。
相似系数函数是用来描述样本点特征性质之间的相似程度,当相似系数值越接近0时,说明两个对象样本越不相似,当相反相似系数值越接近1,则说明两个对象越相似,这才可以将它们归为一类。
距离函数指的是对象样本间的距离,对于含有N个属性的样本对象来说,我们可以将每个样本点看作是N维空间中的一个点,然后使用某种距离来表示样本对象点之间的相似性,对象样本点越相似,则样本点之间的距离越小,可以将它们归为一类;对象样本点差异越大,则两者间的距离越大,就不能归为一类。
3.2 聚类模型设计
聚类首先要做的是对样本对象的特征抽取,它所处理的对象是样本数据集,由于实际应用中的样本数据对象一般都有多种特征,要具体选取哪种特征才可以正确地描述样本对象的本质和结构对于聚类分析来说至关重要。特征抽取的结果是输出一个矩阵,每一行对应的是一个样本对象,而每一列对应的是一个特征变量。特征的抽取是另一个重要步骤,对后续的分析和决策有直接的影响。如果抽取的特征变量只是样本对象中不重要的属性,对这些无关紧要的属性进行聚类分析出的结果肯定也达不到预期的效果,因为当使用错误的特征属性来解释对象时,容易扭曲样本对象,再对这样的样本对象进行的聚类分析,即便是用最好的聚类算法来对其处理,结果也是不正确的。
总结蚁群算法和聚类分析的特点,引入了一种改进的蚁群算法(Improved Ant Colony Algorithm,IACA)。并将其运用到Web日志的用户聚类上,聚类模型如下: 1. 初始化设定
设有M个模式样本、K个模式分类,N是表示为几个样本对象;初始状态将M个样本随机分配到N个聚类中心,K表示分类出K个等级,每个模式样本是一个D维向量,定义模式样本Xn?(Xn1,Xn2,...Xnd)。设聚类中心为 Zj?(j?1,2,...k,则目标函数表示为:,KNT?min?2. 信息素更新
j?1i?1且Xi?第j类?||Xi?Zj||(3-1)
计算蚂蚁的各自初始聚类中心Zkj(第k个蚂蚁将模式样本i分配到第j个聚类中心)和初始目标函数,初始化各蚂蚁的样本到各聚类中心的信息素浓度Pijk,信息素浓度更新公式为:
kkkP(new)??P(old)??Pijijij(3-2)
k其中?Pij是信息素增量,?是信息素强度的持久性系数(算法中1-?表示信息素
挥发度)。
初始化,蚂蚁将M个样本随机分配到K个聚类中心 计算蚂蚁的各自初始聚类中心Zj和初始目标函数Tk? 初始化各蚂蚁的样本到各聚类中心的信息素浓度 kM只蚂蚁到N个样本进行K个模式分类 更新并调整信息素,计算出新的聚类中心Zj,计算目标函数Tk hk'搜索次数h=h+1 |T?TT是 hhkh?1kh?1k|否 ?? 否 h>=L? 选取min(Tk),输出分类结果 是 算法结束
图3.1 流程图
3. 聚类中心的计算方法
对于聚类中心Zj(j?1,2,...,k)的计算方法,我们选择了K均值算法[12]来计算每个聚类中心。 4. 有关参数的选择
由于算法参数的选择会对蚁群算法的性能产生较大的影响。从蚂蚁搜索最短路径的原理出发,我们定义了一些参数:种群数N、常数Q、绝对感觉阈值CST和差别感觉阈值AST以及信息素挥发度1-?等等。
蚂蚁数量N决定蚁群算法的循环次数呈线性变化。当蚂蚁数量过大时,搜索的全局性和稳定性有所提高,但是算法的收敛速度变慢。蚁群搜索过程中信息素挥发度1-?的大小关系到蚁群算法运行过程中的收敛速度和全局搜索能力:当1-?过小时,搜索过的路径被选择的概率降低,虽然算法全局搜索能力和随机性能有所提高,但是收敛速度却下降;当1-?过大时,表示搜索过的路径被再次选择的概率增加,影响算法的全局搜索能力;所以对信息素挥发度的选择,需要平衡算法的收敛速度和全局搜索能力。另外,AST和CST的取值也很重要,取值不恰当容易使解陷入局部收敛,算法需要在稳定性和求解速度上取得平衡。
3.3 Web日志预处理相关技术
在对Web日志进行挖掘之前,有一个很重要的数据处理过程,称之为Web日志预处理,也就是对 Web 日志数据进行过滤、清洗以及重新组合的过程。我们都知道服务器端的Web日志中记录了用户访问网站的各种信息,但是这些信息中有些数据是自动产生,而有些信息可能并不是我们需要研究的,这些都属于无用的,所以我们应该对其进行数据预处理。而Web日志预处理技术主要包括有以下五个阶段:
(1)数据清理; (2)用户识别; (3)会话识别; (4)路径补充; (5)事物识别。
服务器产生的Web 日志文件是Web日志挖掘中数据预处理所要研究的对象。在这些日志文件中存在许多对研究没有任何意义的数据,所以直接用这些文件将会导致研究出的结果有偏差或出错等问题。所以,Web日志数据预处理过程是Web日志挖掘的第一个阶段,也是非常重要的阶段。这个阶段会对Web服务器
日志或者代理日志进行数据清洗、数据规范化和数据集成等操作,最终把原始的日志数据通过一系列操作,处理成便于进行挖掘算法的数据。
不同的Web日志文件中记录的数据也会相应的有各自的数据特点,是不一样的,因为每个服务器设置的参数不一样,但是有一些基本的信息是无论任何服务器都应该有记录的。如表3-1所示。
表3-1 Web访问日志记录的主要信息
属性 日期以及时间 用户IP地址 用户名 服务器IP地址 服务器端口 方法 URL查询 协议状态 发送的字节数 接受的字节数 用户代理 日志的说明 用户请求页面的日期以及具体的时间 客户端主机的IP地址或者DNS入口 客户端的用户名 服务器的IP地址 服务器端口号 用户请求数据的方法 用户将要进行的查询 返回http的状态的标识 服务器发送数据的字节数 客户端收到数据的字节数 服务的提供者 3.4 Web日志数据预处理的过程
Web日志数据预处理主要任务是,把输入数据为Web服务器日志或其他的日志记录文件转化为可以进行挖掘的用户会话文件以及事务数据库,而处理数据的结果将直接影响Web日志挖掘质量的好坏。一般来说,Web日志数据的预处理过程由以下五个阶段构成,分别是数据清理、用户识别、会话识别、路径补充以及事物识别。如图3-2所示。接下来针对这五个阶段来详细的进行下介绍。