数据挖掘实验报告-关联规则挖掘

合集下载

关联规则分析--实验报告

关联规则分析--实验报告

数据挖掘——关联规则一、数据处理1.来源:百度文库《麻坪中学体质测试》2.源数据描述1)源数据量:572个2)数据属性:年级编号、班号、班级、学号、民族代码、姓名、性别、出生日期、学生来源、家庭住址、身高、身高体重分数、身高体重等级、肺活量、肺活量体重指数、肺活量体重分数、肺活量等级、耐力类项目成绩、耐力类项目分数、耐力项目等级、柔韧力量类项目编号、柔韧力量类项目成绩、柔韧力量类项目分数、柔韧力量类项目等级、速度灵巧类项目编号、速度灵巧类项目成绩、速度灵巧类项目分数、速度灵巧类项目等级、奖惩项目编号、奖惩成绩、测试总分、总分等级。

(部分数据展示)3.数据处理1)数据规约选择属性:选择“姓名、性别、肺活量体重等级、耐力类项目等级、柔韧、力量类项目等级、速度、灵巧类项目等级”五个属性。

其余属性为不重要属性,故舍去。

2)数据转换a)等级属性值转化:等级均为“不及格、及格、良好、优秀”。

将“不及格”和“及格”转化为“F”;将“及格”和“不及格”转化为“T”b)性别属性值转化:女性T,男性Fc)属性名转化:将属性名和各个学生姓名转化为英文字母+数字NA:姓名A1:性别A2:肺活量体重等级A3:耐力类项目等级A4:柔韧、力量类项目等级A5:速度、灵巧类项目等级二、实验内容1.代码来源:网上算法结合自己的想法2.代码运行过程:第一次扫描后的1级备选集CandidateItemsetA1A2A3A4A5第一次扫描后的1级频繁集FrequentItemsetA1A2A3A4A5扫描后备选集A1 A2A1 A3A1 A4A1 A5A2 A3A2 A4A5 A2A3 A4A5 A3A5 A4扫描后频繁集A1 A2A1 A3A1 A4A1 A5A2 A3A2 A4A5 A2A3 A4A5 A3A5 A4扫描后备选集A1 A2 A3A1 A2 A4A1 A5 A2A1 A3 A4A1 A5 A3A1 A5 A4A2 A3 A4A5 A2 A3A5 A2 A4A5 A3 A4扫描后频繁集A1 A2 A3A1 A2 A4A1 A3 A4A1 A5 A3A1 A5 A4A2 A3 A4A5 A2 A3A5 A2 A4A5 A3 A4扫描后备选集A1 A2 A3 A4 A1 A2 A3 A5 A1 A2 A4 A5 A1 A3 A4 A5A2 A3 A4 A5扫描后频繁集A1 A3 A4 A5A2 A3 A4 A5扫描后备选集A1 A2 A3 A4 A5无满足支持度项集,结束连接扫描后频繁集Apriori算法--->频繁集A1 A3 A4 A5A2 A3 A4 A53.代码结果:支持度:0.05关联关系:A1、A3、A4、A5A2、A3、A4、A5三、结论1.由{ A1、A3、A4、A5}得出男生的耐力类项目等级、柔韧、力量类项目等级、速度、灵巧类项目等级普遍比较优秀2.由{ A2、A3、A4、A5}得出一般肺活量体重等级、耐力类项目等级、柔韧、力量类项目等级、速度、灵巧类项目等级普遍都是同一等级,即肺活量体重等级优秀的人,则其他的都是优秀。

数据挖掘实验报告

数据挖掘实验报告

数据挖掘实验报告一、引言。

数据挖掘作为一种从大量数据中发现隐藏模式和信息的技术,已经被广泛应用于各个领域。

本实验旨在通过对给定数据集的分析和挖掘,探索其中潜在的规律和价值信息,为实际问题的决策提供支持和参考。

二、数据集描述。

本次实验使用的数据集包含了某电商平台上用户的购物记录,其中包括了用户的基本信息、购买商品的种类和数量、购买时间等多个维度的数据。

数据集共包括了10000条记录,涵盖了近一年的购物数据。

三、数据预处理。

在进行数据挖掘之前,我们首先对数据进行了预处理。

具体包括了数据清洗、缺失值处理、异常值处理等步骤。

通过对数据的清洗和处理,保证了后续挖掘分析的准确性和可靠性。

四、数据分析与挖掘。

1. 用户购买行为分析。

我们首先对用户的购买行为进行了分析,包括了用户购买的商品种类偏好、购买频次、购买金额分布等。

通过对用户购买行为的分析,我们发现了用户的购买偏好和消费习惯,为电商平台的商品推荐和营销策略提供了参考。

2. 商品关联规则挖掘。

通过关联规则挖掘,我们发现了一些商品之间的潜在关联关系。

例如,购买商品A的用户80%也会购买商品B,这为商品的搭配推荐和促销活动提供了依据。

3. 用户价值分析。

基于用户的购买金额、购买频次等指标,我们对用户的价值进行了分析和挖掘。

通过对用户价值的评估,可以针对不同价值的用户采取个性化的营销策略,提高用户忠诚度和购买转化率。

五、实验结果。

通过对数据的分析和挖掘,我们得到了一些有价值的实验结果和结论。

例如,发现了用户的购买偏好和消费习惯,发现了商品之间的关联规则,发现了用户的不同价值等。

这些结论为电商平台的运营和管理提供了一定的参考和决策支持。

六、结论与展望。

通过本次实验,我们对数据挖掘技术有了更深入的理解和应用。

同时,也发现了一些问题和不足,例如数据质量对挖掘结果的影响,挖掘算法的选择和优化等。

未来,我们将继续深入研究数据挖掘技术,不断提升数据挖掘的准确性和效率,为更多实际问题的决策提供更有力的支持。

关联规则实验报告

关联规则实验报告

2. 转换数据test.csv为testuse.csv以便进行关联分析。

4. 查看导入的数据a)点击节点选项卡“输出”,双击“表格”节点b)右键点击“testuse.csv”节点,选择“Connect”选项,单击“Table”(在两个节点中产生一个箭头,从“testuse.csv”指向“Table”节点。

)5. 对数据进行清洗a)选择节点选项卡的“字段选项”,把“类型”节点拖入数据流区域。

b)连接“testuse.csv”节点和“类型”节点c)双击数据流区域中的“类型”节点,单击“读取值”按钮d)把其他行的“方向”的值改为“双向”6. 使用Apriori节点分析a)双击“建模”选项卡的“Apriori”节点b)连接“类型”节点与“Apriori”节点(箭头指向“Apriori”节点)7. 查看挖掘结果a)左键单击管理器的“模型”选项卡,右键点击第5部执行以后出现的模型图标b)选择“浏览”,弹出图表c)查看结果质合比3:3 和奇偶奇偶比3:3100%8. 提升a)双击“Apriori”节点,弹出选项界面,修改参数b)选择“模型”选项卡修改参数质合比1:5 和奇偶和大小奇偶比1:5关联规则分析方法原理算法优点缺点适用范围逐层搜索的迭代算法,k-项集用于探索(k+1)-项集。

连接,减枝两步走。

首先,通过扫描数据集,产生一个大的候选数据项集,并使用候选项集找频繁项集Apriori算法效率高1.多次扫描事务数据库,需很大的I/O负载。

2.单维、单层、布尔关联规66.667%。

数据挖掘方法——关联规则(自己整理)

数据挖掘方法——关联规则(自己整理)

小结:Apriori算法可以分为频繁项集的生成和关联规则的生成两 大步骤;FP-Growth算法可以分成FP-Tree的生成,频繁项集的生成和 关联规则的生成3大步骤。
Copyright © 2009, MANAGEMENT SCIENCE ASSOCIATES, INC.
9
五、关联规则挖掘的相关算法
Copyright © 2009, MANAGEMENT SCIENCE ASSOCIATES, INC.
Copyright © 2009, MANAGEMENT SCIENCE ASSOCIATES, INC.
7
五、关联规则挖掘的相关算法
1.Apriori算法:使用候选项集找频繁项集 Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是 基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关 联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。 该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和 预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小 支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集 合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定 义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被 留下来。为了生成所有频集,使用了递推的方法。 Apriori算法可以产生相对较小的候选项目集,扫描数据库的次数由最大频繁 项目集的项目数决定。因此,该算法适合于最大频繁项目集相对较小的数据集中 的关联规则挖掘问题。 Apriori算法的两大缺点:1.可能产生大量的候选集;2.可能需要重复扫描数据库。
关联分析的目的:找出数据库中隐藏的关联网。一般用Support(支 持度)和Confidence(可信度)两个阀值来度量关联规则的相关性,引入 lift(提高度或兴趣度)、相关性等参数,使得所挖掘的规则更符合需求。

数据挖掘关联规则实验报告

数据挖掘关联规则实验报告

数据挖掘关联规则实验报告1. 背景关联规则是数据挖掘中一种重要的技术,用于发现数据集中的项集之间的关联关系。

关联规则可以帮助我们了解数据中的隐含模式,从而提供决策支持和洞察力。

本实验旨在通过关联规则分析数据集中的购物篮数据,探索其中的关联关系,为商家提供销售策略和推荐。

2. 数据分析2.1 数据集介绍本实验使用的数据集是一个超市的销售数据,包含了大量的购物篮信息。

每个购物篮的信息记录了购买的商品,我们可以根据这些信息分析商品之间的关联关系,挖掘出一些有用的规则。

2.2 数据预处理在进行关联规则分析之前,需要对数据进行预处理。

首先,我们需要将数据集转换成适合关联规则分析的形式,即每个篮子的商品集合。

其次,为了减少数据集的大小,我们可以去除不常见的商品或者设置最小支持度阈值。

2.3 关联规则分析在进行关联规则分析时,可以使用Apriori算法来挖掘频繁项集和关联规则。

Apriori算法通过迭代生成候选项集,并使用支持度和置信度来筛选出频繁项集和关联规则。

通过分析频繁项集和关联规则,我们可以了解商品之间的关联关系,例如某些商品的购买行为存在共同模式等。

3. 实验结果3.1 频繁项集分析结果使用Apriori算法计算频繁项集,得到了如下结果:频繁项集支持度{牛奶} 0.4{面包} 0.6{鸡蛋} 0.3{牛奶,面包} 0.3{面包,鸡蛋} 0.2从上表中可以看出,牛奶、面包和鸡蛋是经常一起购买的商品。

其中,牛奶和面包的支持度较高,说明它们经常一起被购买。

3.2 关联规则分析结果使用Apriori算法计算关联规则,设置置信度阈值为0.5,得到了如下结果:关联规则支持度置信度{牛奶} -> {面包} 0.3 0.75{面包} -> {牛奶} 0.3 0.5{面包} -> {鸡蛋} 0.2 0.33从上表中可以看出,购买牛奶的顾客有75%的概率也购买面包,而购买面包的顾客有50%的概率也购买牛奶。

数据挖掘实验报告结论(3篇)

数据挖掘实验报告结论(3篇)

第1篇一、实验概述本次数据挖掘实验以Apriori算法为核心,通过对GutenBerg和DBLP两个数据集进行关联规则挖掘,旨在探讨数据挖掘技术在知识发现中的应用。

实验过程中,我们遵循数据挖掘的一般流程,包括数据预处理、关联规则挖掘、结果分析和可视化等步骤。

二、实验结果分析1. 数据预处理在实验开始之前,我们对GutenBerg和DBLP数据集进行了预处理,包括数据清洗、数据集成和数据变换等。

通过对数据集的分析,我们发现了以下问题:(1)数据缺失:部分数据集存在缺失值,需要通过插补或删除缺失数据的方法进行处理。

(2)数据不一致:数据集中存在不同格式的数据,需要进行统一处理。

(3)数据噪声:数据集中存在一些异常值,需要通过滤波或聚类等方法进行处理。

2. 关联规则挖掘在数据预处理完成后,我们使用Apriori算法对数据集进行关联规则挖掘。

实验中,我们设置了不同的最小支持度和最小置信度阈值,以挖掘出不同粒度的关联规则。

以下是实验结果分析:(1)GutenBerg数据集在GutenBerg数据集中,我们以句子为篮子粒度,挖掘了林肯演讲集的关联规则。

通过分析挖掘结果,我们发现:- 单词“the”和“of”在句子中频繁出现,表明这两个词在林肯演讲中具有较高的出现频率。

- “and”和“to”等连接词也具有较高的出现频率,说明林肯演讲中句子结构较为复杂。

- 部分单词组合具有较高的置信度,如“war”和“soldier”,表明在林肯演讲中提到“war”时,很可能同时提到“soldier”。

(2)DBLP数据集在DBLP数据集中,我们以作者为单位,挖掘了作者之间的合作关系。

实验结果表明:- 部分作者之间存在较强的合作关系,如同一研究领域内的作者。

- 部分作者在多个研究领域均有合作关系,表明他们在不同领域具有一定的学术影响力。

3. 结果分析和可视化为了更好地展示实验结果,我们对挖掘出的关联规则进行了可视化处理。

通过可视化,我们可以直观地看出以下信息:(1)频繁项集的分布情况:通过柱状图展示频繁项集的分布情况,便于分析不同项集的出现频率。

《数据挖掘中关联规则算法研究》范文

《数据挖掘中关联规则算法研究》范文

《数据挖掘中关联规则算法研究》篇一一、引言随着信息技术和大数据时代的飞速发展,数据挖掘技术逐渐成为各个领域研究的重要课题。

关联规则算法作为数据挖掘的核心技术之一,能够从大量数据中提取出有价值的信息和知识。

本文将深入探讨数据挖掘中关联规则算法的研究现状、常用算法及其应用领域。

二、关联规则算法概述关联规则算法是一种在大规模数据集中寻找项集之间有趣关系的技术。

其主要目标是发现数据集中项集之间的关联性或因果结构,从而帮助人们更好地理解和利用数据。

关联规则算法通常用于购物篮分析、用户行为分析、生物信息学等领域。

三、常用关联规则算法1. Apriori算法:Apriori算法是一种经典的关联规则挖掘算法,其核心思想是通过寻找频繁项集来生成关联规则。

Apriori算法通过不断迭代,逐步找出满足最小支持度和最小置信度的规则。

2. FP-Growth算法:FP-Growth算法是一种改进的关联规则挖掘算法,它通过构建频繁模式树(FP-Tree)来发现数据集中的频繁项集和关联规则。

与Apriori算法相比,FP-Growth算法具有更高的效率。

3. Eclat算法:Eclat算法也是一种常用的关联规则挖掘算法,其基本思想是将数据库分割成若干个不相交的子集,然后对每个子集进行局部搜索,最后将局部搜索结果合并得到全局的关联规则。

四、关联规则算法的应用领域1. 购物篮分析:通过分析顾客的购物行为,发现商品之间的关联关系,从而帮助商家制定更有效的营销策略。

2. 用户行为分析:在互联网领域,通过分析用户的浏览、点击等行为数据,发现用户兴趣之间的关联关系,为个性化推荐等应用提供支持。

3. 生物信息学:在生物信息学领域,关联规则算法可以用于分析基因、蛋白质等生物分子之间的相互作用关系,从而揭示生物系统的复杂网络结构。

五、研究现状与展望目前,关联规则算法已经广泛应用于各个领域,并取得了显著的成果。

然而,随着数据规模的日益增大和复杂性的提高,传统的关联规则算法面临着诸多挑战。

(完整word版)数据挖掘实验报告-关联规则挖掘(word文档良心出品)

(完整word版)数据挖掘实验报告-关联规则挖掘(word文档良心出品)

数据挖掘实验报告(二)关联规则挖掘**: ***班级: 计算机1304学号: **********一、实验目的1. 1.掌握关联规则挖掘的Apriori算法;2.将Apriori算法用具体的编程语言实现。

二、实验设备PC一台, dev-c++5.11三、实验内容根据下列的Apriori算法进行编程:四、实验步骤1.编制程序。

2.调试程序。

可采用下面的数据库D作为原始数据调试程序, 得到的候选1项集、2项集、3项集分别为C1.C2.C3, 得到的频繁1项集、2项集、3项集分别为L1.L2.L3。

代码#include <stdio.h>#include<string.h>#define D 4 //事务的个数#define MinSupCount 2 //最小事务支持度数void main(){char a[4][5]={{'A','C','D'},{'B','C','E'},{'A','B','C','E'},{'B','E'}};charb[20],d[100],t,b2[100][10],b21[100 ][10];inti,j,k,x=0,flag=1,c[20]={0},x1=0,i1 =0,j1,counter=0,c1[100]={0},flag1= 1,j2,u=0,c2[100]={0},n[20],v=1;int count[100],temp;for(i=0;i<D;i++){for(j=0;a[i][j]!='\0';j++) {//用来判断之前保存的是否和a[i][j]一样, 不一样就保存, 一样就不保存for(k=0;k<x;k++){if(b[k]!=a[i][j]) ; else{flag=0;break;}}//用来判断是否相等 if(flag==1){b[x]=a[i][j];x++;}else flag=1;}}//计算筛选出的元素的支持度计数for(i=0;i<D;i++){for(j=0;a[i][j]!='\0';j++) {for(k=0;k<x;k++){if(a[i][j]==b[k]) {c[k]++;break; }}}}//对选出的项集进行筛选, 选出支持度计数大于等于2的, 并且保存到d[x1]数组中for(k=0;k<x;k++){if(c[k]>=MinSupCount){d[x1]=b[k];count[x1]=c[k];x1++;}}//对选出的项集中的元素进行排序for(i=0;i<x1-1;i++){for(j=0;j<x1-i-1;j++){if(d[j]>d[j+1]){t=d[j];d[j]=d[j+1];d[j+1]=t;temp=count[j];count[j]=count[j+1];count[j+1]=temp;}}}//打印出L1printf("L1 elements are:\n");for(i=0;i<x1;i++){printf("{%c} = %d \n",d[i],count[i]);}//计算每一行的元素个数, 并且保存到n[]数组中for(i=0;i<D;i++){for(j=0;a[i][j]!='\0';j++);n[i]=j;}//对a[][]数组的每一行进行排序for(i=0;i<D;i++){for(j=0;j<n[i]-1;j++){for(k=0;k<n[i]-j-1;k++) {if(a[i][k]>a[i][k+1]){t=a[i][k];a[i][k]=a[i][k+1]; a[i][k+1]=t;}}}}//把L1中的每一个元素都放在b2[i][0]中j1=x1;for(i=0;i<j1;i++){b2[i][0]=d[i];}//把L1中的元素进行组合, K=2开始, 表示x1个元素选K个元素的组合for(k=2;b2[0][0]!='\0';k++){ //u是用来计数组合总数的u=0;v=1;//v 是用来在进行输出各种组合的标识数 v=1 说明正在进行输出 for(i=0;i<100;i++){c2[i]=0;}for(i=0;i<j1;i++){for(i1=i+1;i1<j1;i1++) {for(j=0;j<k-2;j++) {if(b2[i][j]!=b2[i1][j]){flag1=0;break;}}//进行组合的部分if(flag1==1&&b2[i][k-2]!=b2[i1][k-2]){for(j2=0;j2<k-1;j2++){b21[u][j2]=b2[i][j2];}b21[u][k-1]=b2[i1][k-2];u++;}flag1=1;}}counter=0;for(i=0;i<D;i++) //a数组有5行元素{for(i1=0;i1<u;i1++) // 代表x1个元素选K个元素的所有组合总数 {for(j1=0;j1<k;j1++) //K 代表一个组合中的元素个数{for(j=0;a[i][j]!='\0';j++) //逐个比较每一行的元素{if(a[i][j]==b21[i1][j1])counter++;}}if(counter==k)c2[i1]++; //把每种组合数记录在c2数组中counter=0;} }j1=0;temp=0;//这里的temp 是用来分行//对u种情况进行选择, 选出支持度计数大于2的*/for(i=0;i<u;i++){if(c2[i]>=MinSupCount) {if(v==1){printf("L%d elements are:\n",k);v=0;}printf("{");for(j=0;j<k;j++)//输出每种组合k 个元素{b2[j1][j]=b21[i][j];printf("%c,",b2[j1][j]);}j1++;printf("\b}");printf(" = %d \n",c2[i]);temp++;}}b2[j1][0]='\0';}}五、结果截图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据挖掘实验报告(二)关联规则挖掘
姓名:***
班级:计算机1304
学号:**********
一、实验目的
1. 1.掌握关联规则挖掘的Apriori算法;
2.将Apriori算法用具体的编程语言实现。

二、实验设备
PC一台,dev-c++5.11
三、实验内容
根据下列的Apriori算法进行编程:
四、实验步骤
1.编制程序。

2.调试程序。

可采用下面的数据库D作为原始数据调试程序,得到的候选1项集、2项集、3项集分别为C1、C2、C3,得到的频繁1项集、2项集、3项集分别为L1、L2、L3。

代码
#include <stdio.h>
#include<string.h>
#define D 4 //事务的个数
#define MinSupCount 2 //最小事务支持度数
void main()
{
char a[4][5]={
{'A','C','D'},
{'B','C','E'},
{'A','B','C','E'},
{'B','E'}
};
char
b[20],d[100],t,b2[100][10],b21[100 ][10];
int
i,j,k,x=0,flag=1,c[20]={0},x1=0,i1 =0,j1,counter=0,c1[100]={0},flag1= 1,j2,u=0,c2[100]={0},n[20],v=1;
int count[100],temp;
for(i=0;i<D;i++)
{
for(j=0;a[i][j]!='\0';j++) {
//用来判断之前保存的是否和a[i][j]一样,不一样就保存,一样就不保存
for(k=0;k<x;k++)
{
if(b[k]!=a[i][j]) ; else
{
flag=0;break;
}
}
//用来判断是否相等 if(flag==1)
{
b[x]=a[i][j];
x++;
}
else flag=1;
}
}
//计算筛选出的元素的支持度计数
for(i=0;i<D;i++)
{
for(j=0;a[i][j]!='\0';j++) {
for(k=0;k<x;k++)
{
if(a[i][j]==b[k]) {
c[k]++;break; }
}
}
}
//对选出的项集进行筛选,选出支持度计数大于等于2的,并且保存到d[x1]数组中
for(k=0;k<x;k++)
{
if(c[k]>=MinSupCount)
{
d[x1]=b[k];
count[x1]=c[k];
x1++;
}
}
//对选出的项集中的元素进行排序
for(i=0;i<x1-1;i++)
{
for(j=0;j<x1-i-1;j++)
{
if(d[j]>d[j+1])
{
t=d[j];d[j]=d[j+1];d[j+1]=t;
temp=count[j];count[j]=count[j
+1];count[j+1]=temp;
}
}
}
//打印出L1
printf("L1 elements are:\n");
for(i=0;i<x1;i++)
{
printf("{%c} = %d \n",d[i],count[i]);
}
//计算每一行的元素个数,并且保存到n[]数组中
for(i=0;i<D;i++)
{
for(j=0;a[i][j]!='\0';j++);
n[i]=j;
}
//对a[][]数组的每一行进行排序
for(i=0;i<D;i++)
{
for(j=0;j<n[i]-1;j++)
{
for(k=0;k<n[i]-j-1;k++) {
if(a[i][k]>a[i][k+1])
{
t=a[i][k];
a[i][k]=a[i][k+1]; a[i][k+1]=t;
}
}
}
}
//把L1中的每一个元素都放在b2[i][0]中
j1=x1;
for(i=0;i<j1;i++)
{
b2[i][0]=d[i];
}
//把L1中的元素进行组合,K=2开始,表示x1个元素选K个元素的组合
for(k=2;b2[0][0]!='\0';k++)
{ //u是用来计数组合总数的
u=0;v=1;//v 是用来在进行输出各种组合的标识数 v=1 说明正在进行输出 for(i=0;i<100;i++)
{
c2[i]=0;
}
for(i=0;i<j1;i++)
{
for(i1=i+1;i1<j1;i1++) {
for(j=0;j<k-2;j++) {
if(b2[i][j]!=b2[i1][j])
{
flag1=0;break;
}
}
//进行组合的部分
if(flag1==1&&b2[i][k-2]!=b2[i1][k-2])
{
for(j2=0;j2<k-1;j2++)
{
b21[u][j2]=b2[i][j2];
}
b21[u][k-1]=b2[i1][k-2];
u++;
}
flag1=1;
}
}
counter=0;
for(i=0;i<D;i++) //a数组有5行元素
{
for(i1=0;i1<u;i1++) // 代表x1个元素选K个元素的所有组合总数 {
for(j1=0;j1<k;j1++) //K 代表一个组合中的元素个数
{
for(j=0;a[i][j]!='\0';j++) //逐个比较每一行的元素
{
if(a[i][j]==b21[i1][j1])
counter++;
}
}
if(counter==k)
c2[i1]++; //把每种组合数记录在c2数组中
counter=0;
} }
j1=0;temp=0;//这里的temp 是用来分行
//对u种情况进行选择,选出支持度计数大于2的*/
for(i=0;i<u;i++)
{
if(c2[i]>=MinSupCount) {
if(v==1)
{
printf("L%d elements are:\n",k);
v=0;
}
printf("{");
for(j=0;j<k;j++)
//输出每种组合k 个元素
{
b2[j1][j]=b21[i][j];
printf("%c,",b2[j1][j]);
}
j1++;
printf("\b}");
printf(" = %d \n",c2[i]);
temp++;
}
}
b2[j1][0]='\0';
}
}
五、结果截图。

相关文档
最新文档