




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、标准文档实用文案Apriori算法实验报告计算机应用技术计算机学院实用文案1 APRIORI 实验 11.1 实验背景11.1.1 国内外研究概况11.1.2 发展趋势11.2 实验内容与要求 11.2.1 实验内容11.2.2 实验要求11.2.3 实验目的22 APRIORI算法分析与实验环境 32.1 APRIORI算法的描述 32.2 APRIORI算法的步骤 32.3 开发环境32.3.1 软件环境32.3.2 硬件环境42.4 本章小结43 算法的设计3.1 APRIORI算法整体框架 53.2 主要的数据结构与函数 53.2.1 数据Z勾53.2.2 主要的程序63.2.3 连接
2、与剪枝操作 63.3 本章小结64数据库的设计与数据的来源 1.1 正确性验证数据 71.2 实验数据71.3 本章小结85 实验结果与性能分析 5.1 APRIORI实验界面 95.2 实验的正确性验证 95.3 实验性能分析 105.3.1 固定最小支持度改变数据量105.3.2 固定数据量改变最小支持度115.3.3 实验结果分析 115.4 本章小结12136 总结与体会 标准文档实用文案1 Apriori 实验1.1 实验背景现在,数据挖掘作为从数据中获取信息的有效方法,越来越受到人们的重视。关联 规则挖掘首先是用来发现购物篮数据事务中各项之间的有趣联系。从那以后,关联规则就成为数据
3、挖掘的重要研究方向,它是要找出隐藏在数据间的相互关系。目前关联规则 挖掘的研究工作主要包括:Apriori算法的扩展、数量关联规则挖掘、关联规则增量式 更新、无须生成候选项目集的关联规则挖掘、最大频繁项目集挖掘、约束性关联规则挖 掘以及并行及分布关联规则挖掘算法等。 关联规则的挖掘问题就是在事务数据库D中找出具有用户给定的满足一定条件的最小支持度Minsup和最小置信度Minconf的关联规则。1.1.1 国内外研究概况1993年,Agrawal等人首先提出关联规则概念,关联规则挖掘便迅速受到数据挖掘 领域专家的广泛关注.迄今关联规则挖掘技术得到了较为深入的发展。Apriori算法是关 联规则
4、挖掘经典算法。针对该算法的缺点,许多学者提出了改进算法,主要有基于哈希 优化和基于事务压缩等。1.1.2 发展趋势关联规则挖掘作为数据挖掘的重要研究内容之一,主要研究事务数据库、关系数据 库和其他信息存储中的大量数据项之间隐藏的、有趣的规律。关联规则挖掘最初仅限于 事务数据库的布尔型关联规则,近年来广泛应用于关系数据库,因此,积极开展在关 系数据库中挖掘关联规则的相关研究具有重要的意义。近年来,已经有很多基于Apriori 算法的改进和优化。研究者还对数据挖掘的理论进行了有益的探索,将概念格和粗糙集 应用于关联规则挖掘中,获得了显著的效果。到目前为止,关联规则的挖掘已经取得了 令人瞩目的成绩,
5、包括:单机环境下的关联规则挖掘算法;多值属性关联规则挖掘;关 联规则更新算法;基于约束条件的关联规则挖掘;关联规则并行及分布挖掘算法等。1.2 实验内容与要求1.2.1 实验内容编程实现 Apriori 算法:要求使用a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g', 'h' , 'i ' , 'j ' 10个项目随机产生数据记录并存入数据库。从数据库读取记录进行Apriori实验,获得频繁集以及关联规则,实现可视化
6、。并用课堂上PPT的实例测试其正确性。1.2.2 实验要求1、程序结构:包括前台工具和数据库;2、设定项目种类为10个,随机产生事务,生成数据库;3、正确性验证(可用课堂上的例子);4、算法效率的研究:在支持度固定数据量不同的时候测量运行时间;在数据量固定,支持度不同的时候测量运行时间;5、注意界面的设计,输入最小支持度和最小可信度,能够输出并显示频繁项目集 以及关联规则。标准文档实用文案1.2.3实验目的1、加强对Apriori算法的理解;2、锻炼分析问题、解决问题并动手实践的能力标准文档实用文案2 Apriori算法分析与实验环境2.1 Apriori 算法的描述Apriori算法是一种找
7、频繁项目集的基本算法。其基本原理是逐层搜索的迭代:频 繁K项Lk集用于搜索频繁(K+1)项集Lk+1,如此下去,直到不能找到维度更高的频繁 项集为止。这种方法依赖连接和剪枝这两步来实现。算法的第一次遍历仅仅计算每个项 目的具体值的数量,以确定大型l项集。随后的遍历,第k次遍历,包括两个阶段。首 先,使用在第(k-1)次遍历中找到的大项集Lk-1和产生候选项集Ck。接着扫描数据库, 计算Ck中候选的支持度。用Hash树可以有效地确定Ck中包含在一个给定的事务t中 的候选。如果某项集满足最小支持度,则称它为频繁项集。2.2 Apriori 算法的步骤步骤如下:1、设定最小支持度s和最小置信度c;2
8、、Apriori算法使用候选项集。首先产生出候选的项的集合,即候选项集,若候选项 集的支持度大于或等于最小支持度,则该候选项集为频繁项集;3、在Apriori算法的过程中,首先从数据库读入所有的事务,每个项都被看作候选 1-项集,得出各项的支持度,再使用频繁1-项集集合来产生候选2-项集集合,因为先验原 理保证所有非频繁的1-项集的超集都是非频繁的;4、再扫描数据库,得出候选2-项集集合,再找出频繁2-项集,并利用这些频繁2-项 集集合来产生候选3-项集;5、重复扫描数据库,与最小支持度比较,产生更高层次的频繁项集,再从该集合里产 生下一级候选项集,直到不再产生新的候选项集为止。2.3 开发环
9、境2.3.1 软件环境(1) 编程软件:Jdk开发包+eclipse集成开发环境Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它 只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括 Java开发工具(Java Development Kit , JDK)。(2) 数据库软件:SQL Server 2008SQL Server 2008在Microsoft的数据平台上发布,可以组织管理任何数据。可以 将结构化、半结构化和非结构化文档的数据直接存储到数据库中。可以对数据进行查询、搜索、同步、报告和分析之类的操
10、作。数据可以存储在各种设备上,从数据中心最大的 服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。(3) 办公软件:Excel 2010Excel是一款试算表办公软件。它是微软办公套装软件 office的重要的组成部分, 它是集统计分析、数据处理和辅助决策等功能于一身,现在金融、统计财经、管理等众 多领域广泛应用。本实验主要用来为固定数据量改变最小支持数以及固定最小支持数改 变数据量两种情况进行时间分析提供可视化图表。标准文档实用文案2.3.2 硬件环境装有Windows 7旗舰版电脑2.4 本章小结本章的内容主要是为了引出本实验的主要算法以及对算法的实现环境做了介绍。
11、标准文档实用文案3算法的设计3.1 Apriori算法整体框架Apriori 开始Apriori 结束图3.1 Apriori实验流程图3.2 主要的数据结构与函数3.2.1 数据结构class Transactionpublic int pid;public String itemset;该类表小表中的一条记录。class Dao标准文档实用文案public ArrayList<Transaction> Query(String sql) 该类用于访问数据库操作。class Kfp public char kfpstr二new charApriori.ITEMSIZE;publi
12、c int index=-1;public int support=0;public boolean isfp=true;该类代表一个频繁项目。3.2.2 主要的程序Java中最常用的集合类是 List 和Map。List的具体实现包括ArrayList 和Vector ,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List适用于按数值索引访问元素的情形。HashMap Map接口的常用实现类,系统<key,value>当成一个整体进行处理,系统总是根据 Hash算法来计算<key,value>的存 储位置,这样可以保证能快速存、取 Map的
13、<卜6丫,丫226>对。ArrayList<Transaction> alTransactions :保存表中的所有记录ArrayList<Kfp> alKfpsl :临时存储频繁项目的集合,存储连接后的结果ArrayList<Kfp> SureFpset :保存频繁 k 项集ArrayList<Kfp> SureFpsetPrio :保存频繁 k-1 项集ArrayList<String> notFpList:保存一定不是频繁项目的集合,用于剪枝HashMap<String, IntegerKfpSuppor:频繁
14、项目集及其对应的支持数HashMap<String,Double> guanlianguize:关联规则及其置信度3.2.3 连接与剪枝操作对于连接操作的两个字符串(长度为k),它们必须有k-1个相同的字符才能做连接 操作。例如:abc和abd可以连接成abcd, abd和bcd可以连接成abcd,而abc和ade就 不可以做连接操作。整个连接过程类似归并排序中的归并操作对于任一频繁项目集的所有非空子集也必须是频繁的,反之,如果某个候选的非空 子集不是频繁的,那么该候选集肯定不是频繁的,将其剪枝。3.3 本章小结本章主要介绍了算法设计的整体流程并且也对主要程序和操作作了简要的说明。
15、标准文档实用文案4数据库的设计与数据的来源本实验的数据均存储于数据库中。数据库yuzm中共产生6张表。表test为测试用yuzm表,用于程序的正确性验证。还有5张表存储随机产生的实验数据。其中数据库的结构 如下图所示。日q田_数据库关系图 日口表S 至珠表 田 口 dbo.datal +1 1 dbo.data2 it) dbo.data3 ti dbo.dta4 +j n dbo.data5 +J 口 dbo.test I祝圜 S同义词 图4.1数据库结构4.1 正确性验证数据表test为PPT上的实例,用于正确性验证。数据的item个数为5,其中的九行数 据均由SQL语句产生,表的每一行都
16、是一个“ 0” “1”的字符串,字符串长度等于商品 种类,其中“ 0”表示该商品不存在,“1”表示该商品存在。表的全部数据如图 4.2 o11001201010340110011010561010001100710100391110111100米:、NULLiditem图4.2表 test4.2 实验数据5张表是通过算法随机产生的具有不同数据量的数据集, 假设商品种类为10种,表 的每一行都是一个“ 0” “1”的字符串,字符串长度等于商品种类,其中“ 0”表示该商 品不存在,“1”表示该商品存在。其中表data1共随机产生1万行数据,表data2产生标准文档实用文案5万行数据,表data3产
17、生25万行数据,表data4产生50万行数据,表data5产生75 万行数据。部分数据如图4.3。iditem13900111100111的1011110000141001110000014201010011111430000101100144iio 111001114510100000001k1001110111147iiooonooo1不0000111111图4.3 实验用表(部分)4.3 本章小结本章主要对数据库的设计与数据来源做出了说明标准文档实用文案5实验结果与性能分析5.1 Apriori实验界面其中可信度可自由设置,默认为 0.7。而支持度记为最小支持度与数据量的比例。 实验数据
18、可以下拉选择6张表中的任意一张。如下图所示:图5.1 实验界面5.2 实验的正确性验证运行程序,我们选择表test ,即可进行正确性验证,实验结果如下图:标准文档实用文案图5.2 正确性验证最终实验结果与ppt的结果相吻合,表明程序编写正确5.3 实验性能分析为了对本程序的实验进行性能分析,我们分别采用固定数据量改变最小支持数以及 固定最小支持数改变数据量两种情况进行时间分析,其中最小置信度设为0.7不变。5.3.1 固定最小支持度改变数据量设支持度为0.2,最小可信度为0.7。具体实验数据量与执行时间如下:表5.1数据量对性能的影响数据量(万行)15255075时间(秒)48.2128.23
19、66.9623.41032.3标准文档实用文案图5.3数据量对性能的影响5.3.2 固定数据量改变最小支持度设实验数据量固定改变最小支持度,具体如下所示:表5.2最小支持度对性能的影响最小支持度0.150.200.250.300.35时间(秒/ 1万)175.64914.28.55.2时间(秒/ 5万)294.1128.258.841.525.7时间(秒/ 25万)531.3366.9246.5185.6154.0固定数据量改变最小支持度60050040030020010000.15最小支持度T一时间C秒九万)T-时间(秒乃万)时间(秒/25万)图5.4最小支持度对性能的影响5.3.3 实验结
20、果分析由以上实验我们可以看出,实验时间会随着数据量的增大而增大,并且随着最小支标准文档实用文案持度的增大而减小。并且他们之间的变化类似于某种指数函数的变化趋势。Apriori的时间主要消耗在4个方面:1、利用K频繁集连接产生K+1候选集时,判断连接的条件时比较的次数太多。假 设项集个数为m的频繁集合Lk,判断连接条件时比较的时间复杂度为O (K*m2。而且本实验的m都很大;2、对Ck中任意的一个c的k个(k-1)子集是否都在Lk-1中。在平均情况下,对 所有彳8选k项集需要扫描次数为|Ck|*|Lk-1|*k/2;3、为了得到所有的候选频集的支持度,需要扫描 N次;4、扫描一次数据库需时间O
21、(k|T| )。|T|为交易数量,k交易长度5.4 本章小结Apriori算法因自身需要多次扫描数据库,并且经过复杂的连接剪枝操作而产生大 量候选集以及进行大量的模式匹配计算的缺陷,使得其在I/O上的花费时间很多,从而导致算法的效率不是太高。标准文档实用文案6 总结与体会通过本次实验,让我明白了什么是 Apriori算法和数据之间的关联性,Apriori算 法是一种最有影响的挖掘布尔关联规则频繁项集的算法,为以后进步学习数据挖掘知识打下了良好的基础。同时我也更加深刻理解了 Apriori算法的原理及其实现的内部细节, 同时通过实现这一经典的数据挖掘算法,也让我更深刻的体会到数据挖掘对于知识发现
22、的重要性,尽管实现了算法,但其中可能还有可以改进的地方,尤其是程序的运行效率 方面。Apriori算法实验不仅使得我对该算法的理解更加上升了一个层次,同时也使得 我更加了解了 java编程语言,使用更加得心应手。import java.awt.BorderLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.Panel;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import jav
23、a.awt.event.ActionListener;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.Set;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import org
24、.omg.CORBA.PUBLIC_MEMBER;public class Apriori extends JFrame implements ActionListener 标准文档实用文案/public static int ITEMSIZE=10;public final int FRAMEWIDTH=800;public final int FRAMEHEIGHT=600;/JPanel up=null;JPanel up_up=null;TextField textFieldName二null;JPanel up_down=null;JPanel up_down_left=null;J
25、Label conflabel=null;儿abel c1=null;儿abel c2=null;儿abel c3=null;儿abel c4=null;JLabel c5=null;儿abel c6=null;JLabel c7=null;儿abel c8=null;JTextField conf=null;JLabel supportlabel=null;JTextField support=null;JPanel up_down_right=null;JComboBox jComboBoxDateSize=null;/ 下拉框JButton jButtonMine=null;JPanel
26、 down=null;TextArea textArea=null;int fpstep=1;int fpindex=0;Dao dao=null;double MinSupport=0.20;double MinConfi=0.70;double DateSize=9.0;ArrayList<Transaction> alTransactions=null;ArrayList<Kfp> alKfps=null;ArrayList<String> notFpList=null;ArrayList<Kfp> SureFpset=null;Array
27、List<Kfp> SureFpsetPrio=null;标准文档实用文案HashMap<String, IntegerKfpSupport=null;ArrayList<String> alsurekfpstr=null;HashMap<String,Double> guanlianguize=null;ArrayList<String> isaddarrStrings=null;int AuxArr=null;public static void main(String口 args) Apriori A=new Apriori();pu
28、blic Apriori()JPanel up=new JPanel(new GridLayout(2, 1);JPanel up_up=new JPanel(new GridLayout(1, ITEMSIZE);/TextField textFieldName=new TextFieldITEMSIZE;/for(int i=0;i<ITEMSIZE;i+)/ textFieldNamei=new TextField();/ up_up.add(textFieldNamei);标准文档/c1=new JLabel(" up_up.add(c1);c2=new JLabel(
29、" up_up.add(c2);c3=new 儿abel(" up_up.add(c3);c4=new JLabel(" up_up.add(c4);c5=new JLabel(" up_up.add(c5);c6=new JLabel(" up_up.add(c6);c7=new JLabel(" up_up.add(c7);c8=new 儿abel(" up_up.add(c8);数)据)挖)掘)实”)");Apriori");实用文案up_down=new JPanel(new GridLayout
30、(1,2);up_down_left=new JPanel(new GridLayout(1,4);conflabel=new 儿abel("可信度:");conf=new JTextField();conf.setText("0.7");supportlabel=new 儿abel("支持度:");support=new JTextField();support.setText("0.2");up_down_left.add(conflabel);up_down_left.add(conf);up_down_le
31、ft.add(supportlabel);up_down_left.add(support);up_down_right=new JPanel(new GridLayout(1,2); jComboBoxDateSize=new JComboBox();/ 下拉框 jComboBoxDateSize.addItem("test");jComboBoxDateSize.addItem("data1");jComboBoxDateSize.addItem("data2");jComboBoxDateSize.addItem("d
32、ata3");jComboBoxDateSize.addItem("data4");jComboBoxDateSize.addItem("data5");jComboBoxDateSize.addActionListener(this);jButtonMine=new JButton("开始挖掘");jButtonMine.addActionListener(this);up_down_right.add(jComboBoxDateSize);up_down_right.add(jButtonMine);up_down.ad
33、d(up_down_left);up_down.add(up_down_right);up.add(up_up);up.add(up_down);down=new JPanel(new BorderLayout();textArea=new TextArea();/textArea.setFont(new Font(Font.DIALOG,Font.ITALIC , 20);textArea.setFont(new Font(Font.DIALOG,Font.PLAIN , 20); down.add(textArea);this.setLayout(new BorderLayout();th
34、is.setSize(FRAMEWIDTH, FRAMEHEIGHT);this.setLocation(100, 100);标准文档实用文案this.setSize(this.FRAMEWIDTH, this.FRAMEHEIGHT);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setTitle("Apriori");/up.setSize(this.FRAMEWIDTH, 100);this.add(up,BorderLayout.NORTH);down.setLocation(0, 100);/do
35、wn.setSize(this.FRAMEWIDTH, this.FRAMEHEIGHT-100);this.add(down);this.setVisible(true);public void InitDate(String table)fpstep=1;AuxArr=new intITEMSIZE+1ITEMSIZE+1;alKfps=new ArrayList<Kfp>();notFpList=new ArrayList<String>();SureFpset=new ArrayList<Kfp>();SureFpsetPrio=new ArrayL
36、ist<Kfp>();dao=new Dao();KfpSupport=new HashMap<String, Integer>();alsurekfpstr=new ArrayList<String>();guanlianguize=new HashMap<String,Double>();isaddarrStrings=new ArrayList<String>();alTransactions=dao.Query("select * from "+table); this.DateSize=alTransac
37、tions.size();public void ShowkFp(ArrayList<Kfp> SureFpset)int steptemp=fpstep;textArea.append(" 频繁"+(steptemp)+”项集 rn");/System.out.println();for(int i=0;i<SureFpset.size();i+)Kfp k=SureFpset.get(i);int tempindex=k.index;String string=String.copyValueOf(k.kfpstr, 0, +tempinde
38、x); int support=KfpSupport.get(string);textArea.append(string+""+support+""+support/DateSize+"rn");标准文档实用文案System.out.println(string+"rn"); public void ShowkFp2(HashMap<String,Double> SureFpset) textArea.append("关联规则 rn");textArea.append(keyStr
39、ing+”Set<String> keys=(Set<String>) SureFpset.keySet(); for(String keyString:keys) "+SureFpset.get(keyString)+"rn")public void DataMine() int fpsteptemp=0;if(fpstep = 1)for(int i=0;i<Apriori.ITEMSIZE;i+)Kfp kfp=new Kfp();kfp.kfpstr+kfp.index=(char) ('a'+i);kfp.s
40、upport=0;kfp.isfp=false;alKfps.add(kfp);DealSupport();SaveNotFpBySupport();SaveSureFp();ShowkFp(alKfps);fpstep+; while(!alKfps.isEmpty()alKfps.clear();for (int i = 0; i < SureFpset.size(); i+)标准文档实用文案Kfp k1 = SureFpset.get(i);for (int j = i + 1; j < SureFpset.size(); j+) Kfp k2 = SureFpset.get
41、(j);Kfp resultKfp = Joint(k1, k2);int tempindex=resultKfp.index;String string=String.copyValueOf(resultKfp.kfpstr,0,+tempindex);if(string.charAt(0) = 0) continue;SubSet subSet= new SubSet();ArrayList<String>alStrings=subSet.displaySubSet1(string.toCharArray();int p=0;for(;p<alStrings.size()
42、;p+) String string2=alStrings.get(p);if(notFpList.contains(string2) break;if(p != alStrings.size() continue;if (!isaddarrStrings.contains(string) isaddarrStrings.add(string);alKfps.add(resultKfp);SureFpsetPrio.clear();for(int i=0;i<SureFpset.size();i+)SureFpsetPrio.add(SureFpset.get(i);Guanliangu
43、ize();SureFpset.clear();DealSupport();SaveNotFpBySupport();/ Cut();if (!alKfps.isEmpty()SaveSureFp();标准文档实用文案ShowkFp(SureFpset);fpstep+;public void Guanlianguize() for(int i=0;i<SureFpsetPrio.size();i+) Kfp k=SureFpsetPrio.get(i);int len = k.index;String string=String.copyValueOf(k.kfpstr, 0, len
44、+1);if(!alsurekfpstr.contains(string)alsurekfpstr.add(string);SubSet s=new SubSet();for(int i=0;i<alsurekfpstr.size();i+)String kfpstr=alsurekfpstr.get(i);char kfpchararr=kfpstr.toCharArray();ArrayList<String> aList=s.SubSet3(kfpchararr,kfpstr.length();for(int j=0;j<aList.size();j+)Strin
45、g guizetemp=”";String kfpstr1=aList.get(j);char kfpchararr1=kfpstr1.toCharArray();int indexinkfp=0;int indexinchararr1=0;while(indexinkfp < kfpchararr.length && indexinchararr1 <kfpchararr1.length)!=if(kfpchararr1indexinchararr1kfpchararrindexinkfp)guizetemp=guizetemp+kfpchararrin
46、dexinkfp; indexinkfp+;elseindexinchararr1+;indexinkfp+;标准文档实用文案while(indexinkfp < kfpchararr.length)guizetemp=guizetemp+kfpchararrindexinkfp+;double support1=(double)KfpSupport.get(kfpstr);double support2=(double)KfpSupport.get(kfpstr1);if(support1/support2 > MinConfi) String temp=kfpstr1+&quo
47、t;>"+guizetemp;guanlianguize.put(temp,support1/support2);ShowkFp2(guanlianguize);alsurekfpstr.clear();guanlianguize.clear();public Kfp Joint(Kfp k1,Kfp k2)Kfp resultKfp=new Kfp();int temp_len=k1.index+1;char temp1=new chartemp_len;char temp2=new chartemp_len;for(int i=0;i<=k1.index;i+)tem
48、p1i=k1.kfpstri;temp2i=k2.kfpstri;SubSet s=new SubSet();ArrayList<String> alStrings1=s.SubSet2(temp1,fpstep);ArrayList<String> alStrings2=s.SubSet2(temp2,fpstep);char result=new chartemp_len+1;boolean flag=false;for(int i=0;i<alStrings1.size();i+)String tempstr=alStrings1.get(i);if(alS
49、trings2.contains(tempstr)int p=0;int q=0;标准文档实用文案int j=0;while(p != templ.length && q != temp2.length)if( p != templ.length && q != temp2.length && temp1p > temp2q)resultj+=temp2q;q+;if(p != templ.length && q != temp2.length && temp1p= temp2q)resultj+=temp2
50、q;q+;p+;if(p != templ.length && q != temp2.length && temp1p < temp2q)resultj+=temp1p;p+;if(p < templ.length)while(p!=temp1.length)resultj+=temp1p+;if(q < temp2.length)/System.out.println("fpstep="+fpstep+","+"j="+j+","+"q="+q
51、+","+"temp_le n="+temp_len);while(q!=temp2.length)resultj+=temp2q+;flag=true;if(flag = true)break;for(int i=0;i<temp_len+1;i+).resultKfp.kfpstr+resultKfp.index=resulti;标准文档实用文案return resultKfp;public void DealSupport()int len=alTransactions.size();for(int i=0;i<len;i+)Trans
52、action t=alTransactions.get(i);String itemset=t.itemset;int num=0;char tempchar=new charITEMSIZE;for(int i1=0;i1<itemset.length();i1+)if(itemset.charAt(i1) = '1')tempcharnum=(char) ('a'+i1); num+;if(num < fpstep) continue;char of1char=new charnum;for(int i3=0;i3<num;i3+)of1c
53、hari3=tempchari3;ArrayList<String> alListsunset=null;SubSet suSet=new SubSet();alListsunset=suSet.displaySubSet(of1char, fpstep);for(int p=0;p<alKfps.size();p+)Kfp kfp=alKfps.get(p);int tempindex=kfp.index;0,String string=String.copyValueOf(kfp.kfpstr, +tempindex);if(alListsunset.contains(s
54、tring) kfp.support+;/System.out.println(string);标准文档实用文案public void Cut()public void SaveSureFp()for(int i=0;i<alKfps.size();i+)Kfp k=alKfps.get(i);SureFpset.add(k);int len=k.index;String string=String.copyValueOf(k.kfpstr, 0, len+1);KfpSupport.put(string, k.support);public void SaveNotFpBySuppor
55、t()for(int i=0;i<alKfps.size();i+)Kfp kfp=alKfps.get(i);double tempSupport=kfp.support/(double)DateSize;if(tempSupport < MinSupport) kfp.isfp=false;char tempchar=kfp.kfpstr;String string=String.copyValueOf(tempchar, 0, +kfp.index); notFpList.add(string);alKfps.remove(i);i=i-1;private int Numof1intstr(String str,char of1char)in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年共享充电宝合作协议书
- 2025年大环内酯类药项目建议书
- 装配式钢结构建筑技术标准培训材料
- 包装行业密封条使用环保型树脂
- 病人安全与急诊治疗
- 项目建设意向书(5篇)
- 16 大家排好队 教学设计-2024-2025学年道德与法治一年级上册统编版
- 2023二年级数学下册 七 时、分、秒第4课时 淘气的作息时间教学实录 北师大版
- 怎样教育孩子的心得体会【5篇】
- 山东省八年级地理上册 第二章 第三节 滚滚长江教学实录 (新版)湘教版
- 读后续写:万能升华主旨句3-脱险型(解析版)-新高考英语读后续写满分攻略
- 个人业绩相关信息采集表
- 【大班户外体育游戏活动的问题及对策研究S幼儿园为例7000字(论文)】
- 工程安全生产竣工评定表
- Vue.js前端开发实战(第2版)全套完整教学课件
- 2023年江苏海洋大学招考聘用专职辅导员26人模拟预测(共500题)笔试参考题库附答案详解
- 【教案】第4单元++基因的表达++单元教学设计高一下学期生物人教版必修2
- 错牙合畸形的早期矫治
- 小学数学-乘法分配律教学课件设计
- 身份证籍贯自动对照自动生成
- DG-TJ 08-2367-2021 既有建筑外立面整治设计标准
评论
0/150
提交评论