数据挖掘-实现Apriori算法.doc
文本预览下载声明
实 验 报 告
实验课程名称 数据挖掘
实验项目名称 实现Apriori算法
年 级
专 业
学生姓名
学 号
00 学 院
实验时间: 年 月 日
姓 名 学 号 实验组 实验时间 指导教师 成 绩 实验项目名称 实现Apriori算法
实验目的及要求:1.掌握Apriori算法原理
用程序实现Apriori算法
学会把Apriori算法应用到实际例子中去
实验硬件及软件平台:
Microsoft Windows XP
C++
实验内容(包括实验具体内容、算法分析、源代码等等):
#includestdio.h
typedef struct
{
int item[100]; //数据项
} D_Node; //数据库D
typedef struct
{
int item[100]; //数据项,用item[0]保存支持度
} C_Node; //候选集
typedef struct
{
int item[100]; //数据项,用item[0]保存支持度
} L_Node;//频繁集
C_Node C[100][100];
L_Node L[100][100];
D_Node D[100];
int min_supp; //最小支持度
void InPut()
{
int i,j,n,n1;
printf(请输入最小支持度:);
scanf(%d,min_supp);
printf(请输入交易集的大小);
scanf(%d,D[0].item[0]);
n=D[0].item[0];
for(i=1;i=n;i++) //for1
{
printf(请输入交易[%d]中记录的个数(n),i);
scanf(%d,n1);
D[i].item[0]=n1;
for(j=1;j=n1;j++) //for2
{
printf(请输入交易[%d]中记录项,直接输入数字:,i);
scanf(%d,D[i].item[j]);
}//for2
} //for1
}//end of InPut
void C1()
{
//功能:扫描数据集D生成1项候选集C1
//输入:数据集D
//输出1项候选集C1
//初始条件 数据集D 非空
int i,j,k;
int no=1,temp=0;
C[1][0].item[0]=0; //1 项集的个数,在本算法中,用C[n][k].item[0]来保存候选集Cn的第k项的支持度
if(D[0].item[0]!=0)
{
C[1][1].item[1]=D[1].item[1];
}
for(i=1;i=D[0].item[0];i++) //for1
{
for(j=1;j=D[i].item[0];j++) //for2
{
temp=1;
for(k=1;k=no;k++) //for3
{
if(C[1][k].item[1]==D[i].item[j])
{
C[1][k].item[0]++; //支持度加1
temp=0; //
} //if
}//end for3
if(temp)
显示全部