版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据挖掘课程设计报告 题 目: 关联规则挖掘系统 姓 名: xxxxxx 班 级: 计算机0901 学 号: xxxxxxxxxxx 2013年 6 月 19 日一、设计目的 该程序实现了对简单数据进行频繁项集挖掘的功能,主要使用 apriori算法,即使用候选产生发现频繁项集。通过这次编程增强编程能力。二、设计要求实现数据挖掘的关联规则,能够挖掘数据之间的关联信息,能够读取文件中的数据,能够保存分析结果。界面友好。三、设计实现流程图 四、实现环境操作系统windowsxp 开发环境netbeans7.1运行环境 windows系列操作系统(装有java运行时环境)五、实现结果完整输出结果:r
2、un:顾客1商品a商品b商品c顾客2商品a商品b顾客3商品b商品c顾客4商品c商品b商品1,3*候选集1:商品a 商品b 商品c 频繁集1:商品a 商品b 商品c *候选集2:商品a,商品b 商品a,商品c 商品b,商品c 频繁集2:商品a,商品b 商品b,商品c *候选集3:商品a,商品b,商品c 频繁集3:*最大频繁集:商品a,商品b 商品b,商品c *关联规则:商品a=商品b1.0商品b=商品a0.6666666666666666商品b=商品c0.6666666666666666商品c=商品b1.0六、设计小结这学期学的数据挖掘课程丰富了我的知识面,让我看到了信息技术的巨大生命力和前景。
3、数据挖掘涉及多学科技术的集成,包括数据库和数据仓库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索等技术。通过数据挖掘,可以从数据库提取有趣的知识、规律或高层信息,并可以从不同角度观察或浏览它们,发现的知识可以用于做决策、过程控制、信息管理、查询处理。利用数据挖掘技术可以帮助获得决策所需的多种知识。在许多情况下,用户并不知道数据存在哪些有价值的信息知识,因此对于一个数据挖掘系统而言,它应该能够同时搜索发现多种模式的知识,以满足用户的期望和实际需要。此外数据挖掘系统还应能够挖掘出多种层次(抽象水平)的模式知识。数据挖掘系统还应容许用户指导挖掘搜索有价值的模式知识。通过
4、这次实践,我对数据挖掘技术有了一个整体的认识。同样在编写程序的时候也遇到了这样或那样的问题。但在老师及同学们的帮助下,艰难的完成了这个系统。这让我对数据挖掘技术以后的深入学习打下了良好的基础。同时我的编程能力进一步提高,java方面的实战经验进一步丰富。优秀的设计要付诸实践,用户需要的是真真实实的产品,知识转化为产品,才能体现它的价值。附录:主要代码1、 appf.java /* * to change this template, choose tools | templates * and open the template in the editor. */package datamin
5、ing;/* * * author administrator */public class appf extends javax.swing.jframe /* * creates new form appf */ public appf() initcomponents(); /* * this method is called from within the constructor to initialize the form. * warning: do not modify this code. the content of this method is always * regen
6、erated by the form editor. */ suppresswarnings(unchecked) / private void initcomponents() jscrollpane1 = new javax.swing.jscrollpane(); jtable1 = new javax.swing.jtable(); jlabel1 = new javax.swing.jlabel(); jtextfield1 = new javax.swing.jtextfield(); jlabel2 = new javax.swing.jlabel(); jtextfield2
7、= new javax.swing.jtextfield(); jlabel3 = new javax.swing.jlabel(); jtextfield3 = new javax.swing.jtextfield(); jbutton1 = new javax.swing.jbutton(); jscrollpane2 = new javax.swing.jscrollpane(); jtextarea1 = new javax.swing.jtextarea(); jlabel4 = new javax.swing.jlabel(); jlabel5 = new javax.swing.
8、jlabel(); setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); jtable1.setmodel(new javax.swing.table.defaulttablemodel( new object null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null , new string 序列, 项目 ); jscrollpan
9、e1.setviewportview(jtable1); jlabel1.settext(支持度:); jlabel3.settext(挖掘深度:); jbutton1.settext(开始分析); jbutton1.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton1actionperformed(evt); ); jtextarea1.setcolumns(20); jtextarea1.setrow
10、s(5); jscrollpane2.setviewportview(jtextarea1); jlabel4.setbackground(new java.awt.color(255, 255, 255); jlabel4.setfont(new java.awt.font(新宋体, 0, 36); / noi18n jlabel4.settext(数据挖掘); jlabel5.settext(置信度:); javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane(); getcontentpane
11、().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addgap(33, 33, 33) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addcomponent(jscrollpane2) .addgroup(ja
12、vax.swing.grouplayout.alignment.trailing, layout.createsequentialgroup() .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading, false) .addgroup(layout.createsequentialgroup() .addcomponent(jlabel1) .addpreferredgap(javax.swing.layoutstyle.componentplacement.related, javax.s
13、wing.grouplayout.default_size, short.max_value) .addcomponent(jtextfield1, javax.swing.grouplayout.preferred_size, 67, javax.swing.grouplayout.preferred_size) .addgroup(javax.swing.grouplayout.alignment.trailing, layout.createsequentialgroup() .addcomponent(jlabel3) .addgap(41, 41, 41) .addcomponent
14、(jtextfield3, javax.swing.grouplayout.preferred_size, 67, javax.swing.grouplayout.preferred_size) .addgroup(javax.swing.grouplayout.alignment.trailing, layout.createsequentialgroup() .addcomponent(jlabel5) .addpreferredgap(javax.swing.layoutstyle.componentplacement.related, javax.swing.grouplayout.d
15、efault_size, short.max_value) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addcomponent(jlabel2, javax.swing.grouplayout.alignment.trailing) .addcomponent(jtextfield2, javax.swing.grouplayout.alignment.trailing, javax.swing.grouplayout.preferred_size, 67, javax.sw
16、ing.grouplayout.preferred_size) .addpreferredgap(javax.swing.layoutstyle.componentplacement.related, 40, short.max_value) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addcomponent(jbutton1) .addgap(69, 69, 69) .addcomponent
17、(jscrollpane1, javax.swing.grouplayout.preferred_size, 196, javax.swing.grouplayout.preferred_size) .addcontainergap() .addgroup(javax.swing.grouplayout.alignment.trailing, layout.createsequentialgroup() .addcomponent(jlabel4, javax.swing.grouplayout.preferred_size, 245, javax.swing.grouplayout.pref
18、erred_size) .addgap(130, 130, 130) ); layout.setverticalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addcontainergap() .addcomponent(jlabel4, javax.swing.grouplayout.preferred_size, 83, javax.swing.grouplayout.preferred_size)
19、.addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addgap(34, 34, 34) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.baseline) .addcomponent(jlabel1) .addcomponent(jtextfield1, javax.swing.grouplayout.pref
20、erred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size) .addgap(24, 24, 24) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.baseline) .addcomponent(jlabel2) .addcomponent(jtextfield2, javax.swing.grouplayout.preferred_size, javax.swing.groupla
21、yout.default_size, javax.swing.grouplayout.preferred_size) .addcomponent(jlabel5) .addcomponent(jbutton1) .addgap(25, 25, 25) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.baseline) .addcomponent(jtextfield3, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.de
22、fault_size, javax.swing.grouplayout.preferred_size) .addcomponent(jlabel3, javax.swing.grouplayout.preferred_size, 15, javax.swing.grouplayout.preferred_size) .addgroup(layout.createsequentialgroup() .addpreferredgap(javax.swing.layoutstyle.componentplacement.related) .addcomponent(jscrollpane1, jav
23、ax.swing.grouplayout.preferred_size, 188, javax.swing.grouplayout.preferred_size) .addgap(18, 18, 18) .addcomponent(jscrollpane2, javax.swing.grouplayout.default_size, 167, short.max_value) ); pack(); / private void jbutton1actionperformed(java.awt.event.actionevent evt) dbmanager db = new dbmanager
24、(); transactioncontainer transactioncontainer = db.gettransactioncontainer(jtable1); apriori apriori = new apriori(); /设置参数 double support = double.parsedouble(jtextfield1.gettext(); apriori.setminsupport(support); double confidence = double.parsedouble(jtextfield2.gettext(); apriori.setminconfidenc
25、e(confidence); int deep = integer.parseint(jtextfield3.gettext(); apriori.setdeep(deep); /设置最大挖掘深度,否则直到不产生新频繁集而自动停止 apriori.setcontainer(transactioncontainer); /进行分析 apriori.analyse(); /打印信息 string info = apriori.printinfo(); jtextarea1.append(info); /* * param args the command line arguments */ pub
26、lic static void main(string args) /* * set the nimbus look and feel */ / /* * if nimbus (introduced in java se 6) is not available, stay with the * default look and feel. for details see * */ try for (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels() if (n
27、imbus.equals(info.getname() javax.swing.uimanager.setlookandfeel(info.getclassname(); break; catch (classnotfoundexception ex) java.util.logging.logger.getlogger(appf.class.getname().log(java.util.logging.level.severe, null, ex); catch (instantiationexception ex) java.util.logging.logger.getlogger(a
28、ppf.class.getname().log(java.util.logging.level.severe, null, ex); catch (illegalaccessexception ex) java.util.logging.logger.getlogger(appf.class.getname().log(java.util.logging.level.severe, null, ex); catch (javax.swing.unsupportedlookandfeelexception ex) java.util.logging.logger.getlogger(appf.c
29、lass.getname().log(java.util.logging.level.severe, null, ex); / /* * create and display the form */ java.awt.eventqueue.invokelater(new runnable() public void run() new appf().setvisible(true); ); 2、 apriori.java: private javax.swing.jbutton jbutton1; private javax.swing.jlabel jlabel1; private java
30、x.swing.jlabel jlabel2; private javax.swing.jlabel jlabel3; private javax.swing.jlabel jlabel4; private javax.swing.jlabel jlabel5; private javax.swing.jscrollpane jscrollpane1; private javax.swing.jscrollpane jscrollpane2; static javax.swing.jtable jtable1; static javax.swing.jtextarea jtextarea1;
31、private javax.swing.jtextfield jtextfield1; private javax.swing.jtextfield jtextfield2; private javax.swing.jtextfield jtextfield3; / end of variables declaration package datamining;import java.util.*;public class apriori private double minsupport; /最小支持度 private double minconfidence; /最小置信度 private
32、 map container; /交易数据容器 private int totalsize; /样品数据条数 private list canditatesetlist = new arraylist(); /候选集链表 private list frequentsetlist = new arraylist(); /频繁集链表 private list maxfrequentsetlist = new arraylist(); /最大频繁集 private int maxdeep = -1; private int curdeep = 0; private boolean isstop =
33、false; private set elementset = new treeset(); private list rulelist = new arraylist(); /设置挖掘深度,如果为-1,表明直到不产生新的频繁集才停止挖掘 public void setdeep(int k) this.maxdeep = k; private double getminconfidence() return minconfidence; public void setminconfidence(double minconfidence) this.minconfidence = minconf
34、idence; private double getminsupport() return minsupport; public void setminsupport(double minsupport) this.minsupport = minsupport; private map getcontainer() return container; public void setcontainer(transactioncontainer transactioncontainer) this.container = transactioncontainer.getcontainer();
35、this.totalsize = this.container.size(); system.out.println(,); system.out.println(totalsize); private boolean isstop() return this.isstop | (maxdeep 0 & curdeep = maxdeep); private void stopanalyse() this.isstop = true; /* * 根据最小支持度,最小自信度,样品数据 进行数据分析 * */ public void analyse() /计算候选集、频繁集 this.makeca
36、nditateset1(); this.makefrequentset1(); while (!isstop() this.curdeep+; /深度+1 this.makecanditateset(); /创建候选集 this.makefrequentset(); /创建频繁集 /计算最大频繁集 this.makemaxfrequentset(); /计算规则 this.makerules(); /* * 创建规则 * */ private void makerules() int rulenum = 0; for (object form : this.maxfrequentsetlist
37、) transactionform tf = (transactionform) form; rulenum = (1 tf.getitems().size() - 2; for (int i = 1; i = rulenum; i+) rule rule = new rule(); transactionform a = new transactionform(); transactionform b = new transactionform(); int j = 0; set items = tf.getitems(); for (object object : items) strin
38、g item = (string) object; if (1 = (getsupportnum(a) * minconfidence) double confidence = this.getsupportnum(ab) * 1.0 / this.getsupportnum(a); rule.seta(a); rule.setb(b); rule.setconfidence(confidence); this.rulelist.add(rule); /* * 计算1项候选集 * */ private void makecanditateset1() set keyset = containe
39、r.keyset(); iterator keyiterator = keyset.iterator(); string tid; transactionform transactionform; list list = new arraylist(); /存放1项候选集 set item1 = new treeset(); while (keyiterator.hasnext() tid = (string) keyiterator.next(); transactionform = (transactionform) (container.get(tid); set items = transactionform.getitems(); for (object object : items) item1.add(object); elementset.ad
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京病人护理康复护理
- 护理实验中的皮肤护理技能
- 口腔科护理与牙齿保健
- 护理直播中的法律风险防范
- 同济内科护理科研方法
- 护理不良事件根因分析
- 护理实验结果解读
- 护理技术操作培训:静脉注射技巧
- 护理技术操作培训:皮下注射技术
- 护理课程:儿科护理基础
- 考古调查勘探辅助工程方案投标文件(技术方案)
- 测绘项目安全保证措施
- HG∕T 5209-2017 黄磷生产尾气处理处置方法
- 五年级数学(小数乘除法)计算题及答案
- 军事高科技知识教程
- 中药材山茱萸种植与炭疽病防治和治疗技术
- 六七十岁老人的回忆录 70岁的回忆录(5篇)
- 【SA8000内审完整内容】SA8000-2014社会责任内部审核记录
- 口腔科医务人员职业暴露
- 电动气动调节阀课件
- 立论有为才有位辩论材料
评论
0/150
提交评论