此代码是《Web日志挖掘技术的研究与应用》陈文臣论文里的算法,求详细讲解
count the NCLR of all distinet pages appeared:
initialize FG1 as the top requested single page groups with Support>=T;
for(i=2;i<=k;i++)
{
Sort the pages of groups in FGi-1 in lexicographical order:
for each group{x1,....,xi-1} in FGi-1
{
for each group{y1,...,yi-1} in FGi-1
{
if(x2=y1 and ....andxi-1=yi-2)
{
construct a new group G={x1,.....,xi-1,yi-1};
if (G not already in FGi)
{
test all other combinations of subgroups of G with size(i-1);
if (all such subgroups are in FGi-1)
if(Support(G)>=T)
add G into FGi;
}
}
}
}
}
这个算法被称为Apriori兴趣度选择算法,是一种在数据挖掘中用于发现频繁项集的算法。具体来说,该算法可以用于在大量数据中发现经常一起出现的项,类似于购物篮分析中的“如果客户购买了A,那么他们也可能购买B”的规则。
算法流程如下:
初始化:将所有的项按照出现频率排序,选择出现频率最高的项集作为初始频繁项集。
迭代:对于每个频繁项集,使用该项集中的所有项来生成候选项集,然后计算每个候选项集的支持度,保留支持度大于等于阈值的项集作为下一个频繁项集。
终止条件:一直重复步骤2,直到无法生成新的频繁项集为止。
具体到这个代码的实现,它是用来计算Web日志中不同页面出现的频率,并以此来发现页面之间可能存在的关联性。具体来说,算法将所有页面按照出现频率排序,然后从出现频率最高的页面开始,依次生成包含更多页面的组合,直到无法再生成新的组合为止。在生成新的组合时,算法会检查组合中的所有子组合是否都出现在前一次迭代得到的频繁项集中,并计算组合的支持度。如果组合的支持度大于等于阈值,则将其添加到频繁项集中。
总之,Apriori兴趣度选择算法是一种常用的频繁项集挖掘算法,可以用于发现数据中的关联规则。该算法的基本思想是通过迭代来发现频繁项集,具体实现上需要对项集进行排序、生成候选项集、计算支持度等操作。