欢迎来到天天文库
浏览记录
ID:31333698
大小:199.75 KB
页数:19页
时间:2019-01-08
《数据挖掘关联性分析小软件java源程序代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、关联规则算法实现一、实验目的1.了解编写数据挖掘算法的一般过程;2.理解关联规则生成算法;3.掌握生成频繁项集的Apriori算法;4.掌握由频繁项集生成关联规则的方法。二、实验环境windows操作系统,一种程序设计语言开发环境。三、实验内容及步骤1、基于模拟数据集,实现Apriori算法以获得频繁项集。2、基于上一步得到的频繁项集,编写算法得到关联规则。3、实验最后生成的Apriori算法的演示程序如下图所示:输入最小的支持度阈值为1生成频繁项集口回冈谙输入星小支持度國值1生成频務集诘输入杲小可信度的值生成关联规则f模拟数据集频務顷集关联规则频繁项集生成过程®中盘小支持度國值是
2、1)▲L1如下:I5*****?出*****213*****6三
3、[AAAAAg—L2如下:1114*****1I3I5*****1I1I5*****2I2I5*****2▼输入最小可信度的值生成关联规则值:<□叵]冈频繁项集生成过程(X中杲小支持度餌值是1)「如下:I5*****?I4*****?13*****6I2*****yIIL2如下:1114*****11315*****11115*****2I2I5*****2▲▼诸输入最小支持度國值1生成频務集谙输入最小可信度的值生成关联规则四、实齡中的问题和心得在实验过程中,遇到了不少的问题,比如说模拟数据集的输入(本人通过一个二维
4、数组将其解决)。通过此次实验,我也从中掌握了不和知识,比如加深了对Apriori算法的理解。通过此次算法,我也设想过如何编写数据挖掘的一般过程,对其也有了更深层次的认识。五、回答问题1.请设置不同的最小支持度阈值,观察得到的频繁项集的数目,说说频繁项集与最小支持度阈值之间的关系。答:输入最小支持度阈值为2吋,其生成的频繁项集如下:1215*****4I2I4*****41113宀*81112宀*8L3如下111213宀*4121315宀*2111215宀*4最小支持度阈值表示数据项集在统计意义上的最低主要性,小于最低支持度的数据项将会被丢弃,将影响频繁项集的结果。1.请设置不同的最
5、小可信度阈值,观察得到的关联规则的数目,说说关联规则与最小可信度阈值之间的关系。答:输入的最小可信度的值为1,生成的关联规则如下:最小可信度阈值表示规则的最低可靠性,小于该设定的可靠性值的规则将会被丢弃。2.详细介绍各算法的流程图和所用到的数据结构,并附带源代码(源代码川应有必要的注释信息)。答:(1)算法用到的数据结构:哈希表和二维数组。(2)算法的伪代码描述如下:输入:交易数据库D;最小支持度阈值min_supo输岀:D中的频繁项集L。方法:(1)Ll=find_frequent_l_itemset(D);找频繁项集1-项集;(2)for(k=2;Lk-iX<;min_sup)
6、{apriori_gen(Lk-i,min_sup)连接和剪枝。用于在第k-1次遍历中生成的L-生成Gforeacht
7、D扫描数据库,确定每个候选项集的支持频度(C,=subset(Ck,t)获得t所包含的候选项集foreachceCtc.count++;}}(3)Lk={ceCk
8、c.count>min_sup}由Ck生成Lk(4)returnL=LiUL2….ULkprocedureapriori_gen(Lk-i,min_sup)foreachligLr-iforeachI2gLr-i{if(li[l]=l2[l]A-Ali[k-2]=l2[k-2]Ali[k-l]9、-l])c=liG12;将两个项集连接在一起ifnothas_infrequent_itemset(c,Lk-i)Ck=CkU{c};}reutrnCk}procedurehas_infrequent_itemset(c,Lk-i){foreach(k—1)subsetsofcifs10、Lk-ireturntrue;elsereturnfalse;}(3)算法源码:★★*编写者:oklzh*Apriori算法*编写口期:2007-11-04packageApriori;importjava.awt.BorderLayout;importjava•awt•FlowLayout;impo11、rtjava•awt•GridLayout;importjava•awt•event•ActionEvent;importjava•awt•event.ActionListener;importjava.util.ArrayList;importjava•ut•Hashtable;importjava•util•Iterator;importjava.util.Set;importjavax.swing.JButton;importjavax•swing.JFrame
9、-l])c=liG12;将两个项集连接在一起ifnothas_infrequent_itemset(c,Lk-i)Ck=CkU{c};}reutrnCk}procedurehas_infrequent_itemset(c,Lk-i){foreach(k—1)subsetsofcifs
10、Lk-ireturntrue;elsereturnfalse;}(3)算法源码:★★*编写者:oklzh*Apriori算法*编写口期:2007-11-04packageApriori;importjava.awt.BorderLayout;importjava•awt•FlowLayout;impo
11、rtjava•awt•GridLayout;importjava•awt•event•ActionEvent;importjava•awt•event.ActionListener;importjava.util.ArrayList;importjava•ut•Hashtable;importjava•util•Iterator;importjava.util.Set;importjavax.swing.JButton;importjavax•swing.JFrame
此文档下载收益归作者所有