欢迎来到天天文库
浏览记录
ID:59123914
大小:79.00 KB
页数:12页
时间:2020-09-13
《频繁模式挖掘算法(Apriori).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一频繁模式挖掘算法(Apriori)一、实验目的1、理解频繁模式和关联规则2、掌握频繁模式挖掘算法Apriori3、为改进Apriori打下基础二、实验内容1、选定一个数据集(可以参考教学中使用的数据集)2、选择合适的实现环境和工具实现算法,本次试验采用的是C++3、根据设置的最小支持度和置信度,给出数据集的频繁模式集三、实验原理该算法的基本思想是:Apriori使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集。首先,通过扫描数据库,累积每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。该集合记作L1
2、.然后,L1用于找频繁2项集的集合L2,L2用于找L3,如此迭代,直到不能再找到频繁k项集。找每个Lk需要一次数据库全扫描。Apriori性质:频繁项集的所有非空子集也必是频繁的。Apriori算法主要包括连接步和剪枝步两步组成。在连接步和剪枝步中采用Apriori性质可以提高算法的效率。Apriori伪代码算法:Apriori输入:D- 事务数据库;min_sup- 最小支持度计数阈值输出:L-D中的频繁项集方法: L1=find_frequent_1-itemsets(D);// 找出所有频繁1项集 For(
3、k=2;Lk-1!=null;k++){ Ck=apriori_gen(Lk-1);// 产生候选,并剪枝 Foreach 事务tinD{// 扫描D进行候选计数 Ct =subset(Ck,t);// 得到t的子集 Foreach 候选c 属于 Ct c.count++; } Lk={c属于Ck
4、c.count>=min_sup}}ReturnL=所有的频繁集;Procedure
5、apriori_gen(Lk-1:frequent(k-1)-itemsets) Foreach项集l1属于Lk-1 Foreach项集 l2属于Lk-1 If((l1[1]=l2[1])&&(l1[2]=l2[2])&&……..&&(l1[k-2]=l2[k-2])&&(l1[k-1]6、quent_subset(c,Lk-1)then deletec;//剪枝步:删除非频繁候选 elseaddctoCk; } ReturnCk; Procedurehas_infrequent_sub(c:candidatek-itemset;Lk-1:frequent(k-1)-itemsets) Foreach(k-1)-subsetsofc Ifs不7、属于Lk-1 then Returntrue; Returnfalse;四、实验要求1、数据集具有一定的代表性,可以使用数据库技术管理2、最小支持度和置信度可以设置3、实现界面友好4、提交实验报告:实验题目、目的、数据集描述、实验环境、过程、结果和分析等。五、实验步骤1、所采用的数据集I1I2I5I1I2I2I4I1I2I4I1I3I1I2I3I5I1I2I3I2I5I2I3I4I3I4对于数据集,取最小支持度min_sup=2,最小置信度min_conf=0.8。2、算法步骤①首先单趟8、扫描数据集,计算各个一项集的支持度,根据给定的最小支持度闵值,得到一项频繁集L1。②然后通过连接运算,得到二项候选集,对每个候选集再次扫描数据集,得出每个候选集的支持度,再与最小支持度比较。得到二项频繁集L2。③如此进行下去,直到不能连接产生新的候选集为止。④由频繁项集产生关联规则,关联规则产生步骤如下:1)对于每个频繁项集l,产生其所有非空真子集;2)对于每个非空真子集s,如果support_count(l)/support_count(s)>=min_conf,则输出 s->(l-s),其中,min_conf是最小置信度阈值9、。3、程序实现1)首先要在工程名文件夹里自己定义date.txt文档存放数据,然后在main函数中用FILE*fp=fopen("date.txt","r");将数据导入算法。2)定义intcountL1[10];找到各一维频繁子集出现的次数。定义charcur
6、quent_subset(c,Lk-1)then deletec;//剪枝步:删除非频繁候选 elseaddctoCk; } ReturnCk; Procedurehas_infrequent_sub(c:candidatek-itemset;Lk-1:frequent(k-1)-itemsets) Foreach(k-1)-subsetsofc Ifs不
7、属于Lk-1 then Returntrue; Returnfalse;四、实验要求1、数据集具有一定的代表性,可以使用数据库技术管理2、最小支持度和置信度可以设置3、实现界面友好4、提交实验报告:实验题目、目的、数据集描述、实验环境、过程、结果和分析等。五、实验步骤1、所采用的数据集I1I2I5I1I2I2I4I1I2I4I1I3I1I2I3I5I1I2I3I2I5I2I3I4I3I4对于数据集,取最小支持度min_sup=2,最小置信度min_conf=0.8。2、算法步骤①首先单趟
8、扫描数据集,计算各个一项集的支持度,根据给定的最小支持度闵值,得到一项频繁集L1。②然后通过连接运算,得到二项候选集,对每个候选集再次扫描数据集,得出每个候选集的支持度,再与最小支持度比较。得到二项频繁集L2。③如此进行下去,直到不能连接产生新的候选集为止。④由频繁项集产生关联规则,关联规则产生步骤如下:1)对于每个频繁项集l,产生其所有非空真子集;2)对于每个非空真子集s,如果support_count(l)/support_count(s)>=min_conf,则输出 s->(l-s),其中,min_conf是最小置信度阈值
9、。3、程序实现1)首先要在工程名文件夹里自己定义date.txt文档存放数据,然后在main函数中用FILE*fp=fopen("date.txt","r");将数据导入算法。2)定义intcountL1[10];找到各一维频繁子集出现的次数。定义charcur
此文档下载收益归作者所有