择概率越来越大,由于路径信息素不断的发挥,时间较长的路径保留的信息素相对较少,这样蚂蚁最终找到一条最优路径。蚂蚁群体的路径寻优机制如图4.2所示,在图4.2中,其中,CD为一障碍物,蚂蚁通过由B或E绕过障碍物进行觅食。
图4.2蚂蚁群体的路径寻找机制
比较图4.1和图4.2可知,Web日志挖掘与蚁群觅食本质极相似,因此采用蚁群算法对Web日志挖掘问题进行求解是可行的。
4.2 传统日志数据挖掘算法
本小节将介绍传统的web日志挖掘算法及蚁群算法。
4.2.1 Apriori算法
在对Web日志进行挖掘的各种算法中,比较传统的是Apriori频繁项集算法,这是一种挖掘关联规则的算法,在很多领域中都有应用,例如在网络安全问题中可以用来检测各项事件和攻击的关联,从而预测下一个攻击行为;在商业中可以对消费者的大数据进行分析,对消费者的购买行为进行统计并预测。
从机制上说,Apriori是一种广度优先搜索算法,由频繁k-1项集产生候选频繁k项集,当候选频繁k项集的支持度超过闻值时,则选取为频繁k项集。Apriori算法则建立在频繁一项集开始,算法终止的条件是不能产生更多项数的频繁项集时。
而在这个算法中,通过2个阶段来生成频繁项集:第一阶段是候选频繁项集的建立阶段,第二阶段是计算项集支持度阶段。在候选频繁项集产生阶段中,由已知的频繁k-1项集中获得候选频繁k项集。在计算支持度阶段中,通过遍历数据集对每个候选频繁项集进行支持度计数。对支持度大于闭值的候选频繁项集选
为频繁k项集。
频繁项集通过计算生成后,可以使用频繁项集生成关联规则,这些规则可以进一步在日常的应用中应用于各种预测分析,例如网络中反映的用户的习惯预测。此外,在对于处理较小的数据集时,Apriori算法拥有很好的表现,不过其缺点会在数据集中项数多时表现,即算法效率较低。造成这种短板的原因是Apriori算法中为了产生一个频繁k项集{x1,x2,??xk},需要先生成2k-2个频繁的子集。当频繁k项集的项数k很大时,子集的数量变得很多,频繁项集树的节点数也将变多。因此,计算机将会反复的对数据集合进行遍历,从而生成频繁项集,而对频繁项集树进行保存也会占用大量缓存空间,影响整个算法效率。
4.2.2 蚁群系统算法
蚁群算法在Web日志挖掘中的应用也是非常广泛的,它本身有仿生学的机制,又包含了路径概率选择与信息的正负反馈,即如果一条路径被几乎全部的蚂蚁所选择行走,则该路径为最佳路径。这种思路在很多数据控制领域应用广泛。其具体机理为:假设用户对Web网页的游览记录如下:
S={(n1,n4,n8),(n1,n4),(n1,n4,n7),(n1,n3,n7),(n1,n3,n6),(n1,n3,n7),(n1,n3,n6),(n1,n2,n5,n3,n7),(n1,n2,n5),(n6,n7))
根据图4.1可知,蚁群算法的Web日志管理模型如图4.3所示:
图4.3蚁群系统在Web日志挖掘中的应用模型
在对一个网页或者网站进行浏览时,用户对网页的阅读频率和阅读时长可以体现出对此网站的兴趣,当用户对内容有兴趣时,会表现在阅读时间增长,阅读页面增多,因此采用蚁群算法进行日志挖掘时,会考虑采用定义用户的浏览序列并建立一条路径,而将浏览序列作为支持度,成为整个算法的启发式信息,并对用户的浏览兴趣进行描述。
4.3 一种改进的适用于Web日志挖掘的蚁群算
如同前面所介绍,在初始阶段,每只蚂蚁分配到一个空的解集合,所有的信息素初始化为一个相同的值,随着迭代过程的进行,信息素值将依赖于产生的解的质量得以更新。下面结合一个具体问题来详细分析如何调整蚁群算法求解聚类问题,蚁群聚类算法采用的硬件/软件环境分别为:CPU 2.4 GHz内存 256 M 硬盘容量 80G 安装的是Microsoft windows XP (Service Pack 2)操作系统开发平台MATLAB 7.0。
下面结合一个具体问题来详细分析如何调整蚁群算法求解聚类问题,数据集见表4-1。表4-1 为包含10个样本的数据集,每个样本有4个属性,设置 10 只蚂蚁欲将样本划分为 3 类。
表 4-1 10个样本划分为 3 类的聚类问题的数据集
序号 1 2 3 4 5 6 7 8 9 10 1 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1 5.7 5.1 2 3.7 3.4 3.0 3.0 4.0 4.4 3.9 3.5 3.8 3.8 3 1.5 1.6 1.4 1.1 1.2 1.5 1.3 1.4 1.7 1.5 4 0.2 0.2 0.1 0.1 0.2 0.4 0.4 0.3 0.3 0.3
下面本文介绍具体的迭代过程,为了便于描述,用 t(本次取值1000)来表示迭代的次数。每只人工蚂蚁依赖于第 t 次迭代提供的信息来实现分类。表4-2
中列出本次迭代中最好解S1继承的信息素矩阵。
表 4-2 S1解的t次迭代后的信息素矩阵
序号 1 2 3 4 5 6 7 8 9 10 1 1.6644 1.6446 1.3027 1.3815 1.2152 0.11002 1.6644 1.6644 1.1466 1.6644 2 0.68016 0.11969 0.01 0.01 1.6644 1.6644 1.5642 0.01 1.6644 0.01 3 1.2207 1.6644 1.6644 1.6644 0.50114 1.0949 1.2832 0.71071 0.11904 1.2349 τ
11=1.6644,τ12=0.68016,τ13=1.2207
11
为第 1 个样本对应与每一个类的
信息素值。这组数据表明,由于τ的值较大,第 1 个样本将以较大的概率归
于第 1 类。事实上,每只蚂蚁按照以前介绍过的随机加确定方法来选择第 i 个样本将所属的类。在此,结合聚类问题再次加以叙述。方法如下:
(i)以预先定义好的几率 q0(0 (ii)以(1-q0)的几率根据转换概率随机选择样本要划分的类。 由人工蚂蚁遍历所有的样本构建出的候选解的质量是由特定的聚类问题的目标函数值来决定的。下面表4-3为蚂蚁数目为10的蚁群聚类算法(排好了顺序)的结果: 表4-3为蚂蚁数目为10的蚁群聚类算法(排好了顺序)的结果 序号 1 1 2 3 4 1 1 1 1 2 3 3 3 3 3 3 3 3 3 4 3 3 3 3 5 2 2 2 2 6 2 2 2 2 7 1 1 1 1 8 1 1 1 1 9 2 2 2 2 10 1 1 1 1 F 3.0041 3.0041 3.0041 3.0041 5 6 7 8 9 10 1 1 1 1 3 1 3 3 3 1 3 3 3 3 3 3 3 1 3 3 3 3 3 3 2 2 2 2 2 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 2 2 1 1 1 1 1 1 3.0041 3.0041 3.0275 3.0568 3.6226 3.9488 本文还将实验的最优解结果使用Matlab实现了2维和3维图,使得结果显示更加直观明了,如图4-4和图4-5所示。 图4-4 2维效果图4-5 3维效果 本文还将实验的最优解结果的分类值使用Excel保存了,如图4-3。 图4-6 结果输出自动保存到Excel中