Apriori算法实验报告
更新时间:2023-10-11 07:53:01 阅读量: 综合文库 文档下载
题 目学生姓名学生学号专业班级指导教师
Apriori算法实现
2014-12-27
实验一 Apriori算法实现
一、 实验目的
1. 加强对Apriori算法的理解;
2. 锻炼分析问题、解决问题并动手实践的能力。
二、 实验要求
使用一种你熟悉的程序设计语言,如C++或Java,实现Apriori算法,至少在两种不同的数据集上比较算法的性能。
三、 实验环境
Win7 旗舰版 + Visual Studio 2010 语言:C++
四、 算法描述
1、 Apriori算法说明
在Apriori算法中,寻找频繁项集的基本思想是:
A. 简单统计所有含一个元素项目集出现的频率,找出不小于最小支持度的
项目集, 即频繁项集;
B. 从第二步开始,循环处理直到再没有最大项目集生成。循环过程是: 第
k步中, 根据第k-1步生成的频繁(k-1)项集产生侯选k项集。根据候选k项集,算出候选k项集支持度,并与最小支持度比较, 找到频繁k项集。 下文中遇到的以下符号,分别代表相应的内容 k-itemset k项集
Lk 频繁k项集 Ck 侯选k项集
2、 Apriori算法描述
数据结构说明
double minsup; //设置最小支持度
map
int round=1; //生成项集轮次 long trancount=0; //原始事务总数
//判断某个项目在某一个事务中是否存在,存在则值为1,反之为0 vector
Apriori算法的第一步是简单统计所有含一个元素的项集出现的频率,来决定频繁1项集。在第k步,分两个阶段:1,用函数genCanItemsetK,通过第(k-1)步中生成的频繁(k-1)项集来生成侯选k项集;2.计算侯选k项集的支持度,并找出频繁k项集。
Apriori算法描述如下 getOriData();
//获取原始数据集,并统计事务个数
genCanItemset1(); //产生输出候选1项集 genFreItemset1(); //产生频繁项集
if(!frequentvec.empty()) //根据频繁1项集,执行程序 {
do {
genCanItemsetK(); //生成并输出候选k项集
}
genFreItemsetK(); //计算并输出频繁k项集
}while(!frequentvec.empty()); //频繁项集不为空,则循环继续
其中,产生候选k项集函数genCanItemsetK中涉及两个重要函数,项集合并函数mergeItem和剪枝函数cutNotCanItemsetK。
3、 函数方法说明
//获取原始数据集,并统计事务个数 void getOriData(); //合并生成新的候选项集
vector
//产生并输出候选k-项集(k>=2) void genCanItemsetK();
//产生并输出频繁k-项集(k>=2) void genFreItemsetK();
//剪枝:剪去合并后项集中含有非频繁项集中的项 void cutNotCanItemsetK(vector
五、 实验截图
1. 程序运行界面
2. 输出文件截图1
3. 输出文件截图1
正在阅读:
Apriori算法实验报告10-11
职业认知报告03-13
概率论与数理统计练习习题四10-30
传 河北中考文综热点专题:两会03-28
图解C1倒库移库技巧全集08-24
上海 (2)05-13
学习社会主义核心价值观心得体会03-09
2013年高考语文总复习必备精品资料: 高中有18个文言虚词--高考03-08
幼儿园纲要学习心得体会04-12
- 企业安全培训试题题库
- 《WEB应用开发》复习题
- 2018届河南省新乡市高三第三次模拟测试英语试题Word版含答案
- 山东省建设工程优质结构评审标准(试行)
- 2016-2022年中国MEMS行业分析及发展趋势预测报告 - 图文
- 工程材料习题和练习 - 图文
- 2013--2014年小学六年级数学毕业水平检测卷及答案
- 江苏省2017-2018学年高考模拟历史试题分解(现代世界经济) Word版
- 移动通信实验指导书
- 2017-2018年最新审定新人教版六年级语文新人教版小学语文六年级
- 会展案例分析教案
- 数据库复习题
- 情智作文之学会选材
- 高一年级十月月考地理试题
- 河南省教育科学“十三五”规划2018年度一般课题立项名单
- 大学生宿舍文化现象调查与分析
- 山东省潍坊市2010届高三第二次模拟考试 理综 Word版
- 风险管理简答题
- 大连广播电视大学
- 民航安全管理经典论文
- 算法
- Apriori
- 实验
- 报告