《数据挖掘》实验指导书
2011年3月1日
长沙学院信息与计算科学系
前言
随着数据库技术的发展,特别是数据仓库以及Web等新型数据源的日益普及,形成了数据丰富,知识缺乏的严重局面。针对如何有效地利用这些海量的数据信息的挑战,数据挖掘技术应运而生,并显示出强大的生命力。数据挖掘技术使数据处理技术进入了一个更高级的阶段,是对未来人类产生重大影响的十大新兴技术之一。因此加强数据挖掘领域的理论与实践学习也已成为专业学生的必修内容。
本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。根据实验教学大纲,我们编排了五个实验,每个实验又分了五部分内容:实验目的、实验内容、实验步骤、实验报告要求、注意事项。在实验之前,由教师对实验作一定的讲解后,让学生明确实验目的,并对实验作好预习工作。在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验步骤中安排的任务。实验完成后,学生按要求完成实验报告。整个教学和实验中,我们强调学生切实培养动手实践能力,掌握数据挖掘的基本方法。
长沙学院信息与计算科学系 数据挖掘实验指导书
实验一 K-Means聚类算法实现
一、实验目的
通过分析K-Means聚类算法的聚类原理,利用Vc编程工具编程实现K-Means聚类算法,并通过对样本数据的聚类过程,加深对该聚类算法的理解与应用过程。 实验类型:验证 计划课间:4学时
二、实验内容
1、分析K-Means聚类算法; 2、分析距离计算方法; 3、分析聚类的评价准则;
4、编程完成K-Means聚类算法,并基于相关实验数据实现聚类过程;
三、实验方法
1、K-means聚类算法原理
K-means聚类算法以k为参数,把n个对象分为k个簇,以使簇内的具有较高的相似度。相似度的计算根据一个簇中对象的平均值来进行。 算法描述:
输入:簇的数目k和包含n个对象的数据库
输出:使平方误差准则最小的k个簇 过程:
任选k个对象作为初始的簇中心; Repeat
for j=1 to n DO
根据簇中对象的平均值,将每个对象赋给最类似的簇 for i=1 to k DO 更新簇的平均值 计算E
Unitl E不再发生变化 按簇输出相应的对象
2、聚类评价准则: E的计算为:E???|x?xi?1x?Ciki|2
第3页
长沙学院信息与计算科学系 数据挖掘实验指导书
四、实验步骤 4.1 实验数据
P192:15
4.2初始簇中心的选择 选择k个样本作为簇中心 For (i=0;i For (j=0;j ClusterCenter[i][j]=DataBase[i][j] 4.3 数据对象的重新分配 Sim=某一较大数;ClusterNo=-1; For (i=0;i If (Distance(DataBase[j],ClusterCenter[i]) ClusterNo=i;} ObjectCluster[j]=ClusterNo; 4.4 簇的更新 For (i=0;i {Temp=0;Num=0; For (j=0;j If (ObjectCluster[j]==i){Num++; Temp+=DataBase[j];} If (ClusterCenter[i]!=Temp) HasChanged=TRUE; ClusterCenter[i]=Temp; } 4.5 结果的输出 For (i=0;i Printf(“输出第%d个簇的对象:”,i); For (j=0;j 第4页 长沙学院信息与计算科学系 数据挖掘实验指导书 If (ObjectCluster[j]==i) printf(“%d ”,j); Printf(“\\n”); Printf(“\\t\\t\\t 簇平均值为(%d,%d)\\n”, ClusterCenter[i][0], ClusterCenter[i][1]); } 五、注意事项 1、距离函数的选择 2、评价函数的计算 第5页