ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:29.25KB ,
资源ID:17751643      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17751643.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(0805030115 梅超亮 数据挖掘 Apriori算法.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

0805030115 梅超亮 数据挖掘 Apriori算法.docx

1、0805030115 梅超亮 数据挖掘 Apriori算法武 汉 工 程 大 学计算机科学与工程学院数据挖掘与知识发现实验报告专业班级08智能1班实验地点计算机大楼419学生学号0805030115指导教师吕品学生姓名梅超亮实验时间2011-12-19实验项目实验2 经典数据挖掘算法的实现实验类别操作性() 验证性() 设计性() 综合性( ) 其它( )实验目的及要求1.进一步熟悉高级语言编程;2掌握使用Apriori算法从事物数据库中挖掘频繁项集的方法;掌握使用ID3算法对任意元组进行分类;掌握使用k-means算法给每一类帖上标签;3.任选其中一个算法实现.成 绩 评 定 表类 别评 分

2、 标 准分值得分合 计上机表现积极出勤、遵守纪律主动完成实验设计任务30分程序代码比较规范、基本正确功能达到实验要求30分实验报告及时递交、填写规范内容完整、体现收获40分说明: 评阅教师: 日 期: 2011 年 月 日实 验 内 容1. 算法思想(1) 首先遍历一次数据库,得到所有单元素的 最后的总结果:2源程序使用的数据结构结构体 Shop用来记录每个商店所拥有的商品名、该商店名struct Shop char TID5; /商店Id char Goods5; /该商店所有的商品名AllElectronics9;结构体GoodNode记录链表的节点。每个节点有以下内容:商品名、该节点的支

3、持度、下一个节点的地址。struct GoodNode char Goods10; int sup; struct GoodNode *next;结构体slistGoodV表示的是候选项目集的链表struct slistGoodV struct GoodNode *head; struct GoodNode *tail; int len;TALL;3源程序#include #include #include struct Shop char TID5; char Goods5;AllElectronics9;struct GoodNode char Goods10; int sup; stru

4、ct GoodNode *next;struct slistGoodV struct GoodNode *head; struct GoodNode *tail; int len;TALL;向候选项目集的链表中的尾部插入节点newnodestruct GoodNode *AddTail(struct GoodNode *newnode) if(TALL.len = 0) TALL.head = newnode; TALL.tail = newnode; TALL.head-next = NULL; TALL.tail-next = NULL; else TALL.tail-next = new

5、node; TALL.tail-next-next = NULL; TALL.tail = newnode; TALL.len+; return TALL.head;产生第一个链表void ProduceListA() char tmp10; struct GoodNode *tem; struct GoodNode *flag, *flag2,*tail; flag = TALL.head; tail = TALL.tail; while(flag != tail) flag2 = flag-next; while(flag2 != tail) memset(tmp,0,10); strcp

6、y(tmp,flag-Goods); strcat(tmp,flag2-Goods); tem = (struct GoodNode *)malloc(sizeof(struct GoodNode); strcpy(tem-Goods,tmp); tem-sup = 0; AddTail(tem); flag2 = flag2-next; memset(tmp,0,10); strcpy(tmp,flag-Goods); strcat(tmp,flag2-Goods); tem = (struct GoodNode *)malloc(sizeof(struct GoodNode); strcp

7、y(tem-Goods,tmp); tem-sup = 0; AddTail(tem); flag = flag-next; flag = TALL.head; while(flag-sup != 0) TALL.head = TALL.head-next; free(flag); flag = TALL.head; 在前一个链表基础上产生下一个链表void ProduceListB() char tmp10; struct GoodNode *tem; struct GoodNode *flag, *flag2,*tail; flag = TALL.head; tail = TALL.tai

8、l; while(flag != tail) flag2 = flag-next; while(flag2 != tail) if(flag-Goods0 != flag2-Goods0) break; memset(tmp,0,10); strcpy(tmp,flag-Goods); tmp2 = flag2-Goods1; tmp3 = 0; tem = (struct GoodNode *)malloc(sizeof(struct GoodNode); strcpy(tem-Goods,tmp); tem-sup = 0; AddTail(tem); flag2 = flag2-next

9、; if(flag-Goods0 = flag2-Goods0) memset(tmp,0,10); strcpy(tmp,flag-Goods); tmp2 = flag2-Goods1; tmp3 = 0; tem = (struct GoodNode *)malloc(sizeof(struct GoodNode); strcpy(tem-Goods,tmp); tem-sup = 0; AddTail(tem); flag = flag-next; flag = TALL.head; while(flag-sup != 0) TALL.head = TALL.head-next; fr

10、ee(flag); flag = TALL.head; 判断链表中的节点的商品名是否在某个商店中int IfInItem(struct Shop *shop,struct GoodNode *node) int i = 0; int k = 0; int flag = 0; while(node-Goodsi != 0) k = 0; flag = 0; while(shop-Goodsk != 0) if(node-Goodsi = shop-Goodsk) flag = 1; break; k+; if(flag = 0) return 0; i+; return 1;计算链表中每个节点的

11、支持度void AddSup() struct GoodNode *tmp; tmp = TALL.head; int i = 0; int j; while(tmp != NULL) for(j = 0; j sup+; tmp = tmp-next; 删除链表中的节点void DeleteNode(int k) / k为支持度 struct GoodNode *tmp, *tmp2; tmp = TALL.head; while(tmp-next != NULL) if(tmp-next-sup next; tmp-next = tmp2-next; free(tmp2); else tm

12、p = tmp-next; TALL.len-; if(TALL.head -sup next; free(tmp); TALL.len-; bool JudgeSame(char *temp) struct GoodNode *tmp; tmp = TALL.head; while(tmp != NULL) while(strcmp(tmp-Goods,temp) = 0) tmp-sup+; return true; tmp = tmp-next; return false;打印链表void ProduceList() int i; int j; int k = 0; char tmp10

13、; struct GoodNode *tem; for(i = 0; i 9; i+) for(j = 0; j Goods,tmp); tem-sup = 0; AddTail(tem); void printTall() struct GoodNode *tmp; tmp = TALL.head; while(tmp != NULL) printf(%st%dn,tmp-Goods,tmp-sup); tmp = tmp-next; 初始化商店的商品信息void InitShop() strcpy(AllElectronics0.TID, T100); strcpy(AllElectron

14、ics0.Goods,ABE); strcpy(AllElectronics1.TID, T200); strcpy(AllElectronics1.Goods,BD); strcpy(AllElectronics2.TID, T300); strcpy(AllElectronics2.Goods,BC); strcpy(AllElectronics3.TID, T400); strcpy(AllElectronics3.Goods,ABD); strcpy(AllElectronics4.TID, T500); strcpy(AllElectronics4.Goods,AC); strcpy

15、(AllElectronics5.TID, T600); strcpy(AllElectronics5.Goods,BC); strcpy(AllElectronics6.TID, T700); strcpy(AllElectronics6.Goods,AC); strcpy(AllElectronics7.TID, T800); strcpy(AllElectronics7.Goods,ABCE); strcpy(AllElectronics8.TID, T900); strcpy(AllElectronics8.Goods,ABC);int main() TALL.head = NULL;

16、 TALL.tail = NULL; TALL.len = 0; InitShop(); int i,j = 0; printf(商店信息n); printf(商店名t商品n); for(i = 0; i 9; i+) printf(%st,AllElectronicsi.TID); printf(%st,AllElectronicsi.Goods); printf(n); printf(第一次产生频繁项集n); printf(项集t支持度n); ProduceList(); printTall(); printf(剔除支持度小于n); DeleteNode(2); printTall();

17、printf(第二次产生频繁项集n); printf(项集t支持度n); ProduceListA(); AddSup(); printTall(); printf(第三次产生频繁项集n); printf(项集t支持度n); ProduceListB(); AddSup(); printTall(); return 0; 实 验 总 结在这次实验中的难点是:关联规则挖掘的第二阶段产生关联规则(Association Rules)。从高频项目组产生关联规则,是利用前一步骤的高频k-项目组来产生规则,在最小信赖度(Minimum Confidence)的条件门槛下,经由高频k-项目组A,B所产生的规则AB,其信赖度可经由公式求得,若数据结构设置的不好,后面的计算量将不是局部的改变,而是伴随后面所有的候选项目集。所以我的想法是纵方向设置一个项目集链表,横方向是字符串型的数组。后面的项目集有前一个的候选项目集产生,所以链表会不断变化,最后就得出了大项目集。 这次实验花费了很长时间,也学到了很多知识,很感谢吕品老师的悉心指导和同学们的热情帮助,让我按时完成了这次实验。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2