基于划分方法的聚类分析

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

南京信息工程大学滨江学院实验(实习)报告

实验(实习)名称基于划分方法的聚类分析实验(实习)日期 2011.6.10 指导教师闫雷鸣

专业软工(动画)年级 2008 班次(1)班姓名王圆媛学号 20082358002 得分

一、实验目的

(1)学习聚类分析的基本概念、各种数据类型、聚类方法的分类。

(2)学会典型的划分方法K均值和K中心点算法的基本原理、特点、优缺点。

(3)应用Weka软件,学会导入数据文件,并对数据文件进行预处理。

(4)学会并应用划分方法中K均值和K中心点算法对数据集进行聚类分析。

二、实验准备:

Bank-data

三、实验要求:

用划分方法中K均值和K中心点算法对数据集进行聚类分析

四、实验内容:

4.1 相关知识

聚类分析中的“类”(cluster)和前面分类的“类”(class)是不同的,对cluster更加准确的翻译应该是“簇”。聚类的任务是把所有的实例分配到若干的簇,使得同一个簇的实例聚集在一个簇中心的周围,它们之间距离的比较近;而不同簇实例之间的距离比较远。对于由数值型属性刻画的实例来说,这个距离通常指欧氏距离。聚类分析中使用最常见的K均值(K-means)算法。

K均值聚类方法的步骤如下。

(1)K均值算法首先随机的指定K个簇中心。

(2)将每个实例分配到距它最近的簇中心,得到K个簇;

(3)计分别计算各簇中所有实例的均值,把它们作为各簇新的簇中心。重复(2)和(3),直到K个簇中心的位置都固定,簇的分配也固定。

上述K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。WEKA将自动实施这个分类型到数值型的变换,而且Weka会自动对数值型的数据作标准化。

Weka中列出了很多聚类算法。对于EM实现,用户可指定需要产生多少聚类,否则所用的算法可通过交叉验证来决定,在这种情况下,折的数量固定为10(除非训练实例小于10个)。用户可指定循环次数的最大值,并且为正常的密度计算设定可允许的最小标准差。SimpleKMeans使用k均值来聚类数据;聚类的数量通过一个参数设定。Cobweb实现了用于名词属性的Cobweb算法和用于数值性属性的Classit算法。FarthestFirst实现Hochbaum 和Shmoys远端优先遍历算法。MakeDensityBaseCluster是一个元聚类器,它包装一个聚类算法,使其返回一个概率分布和密度。它为每个聚类拟合一个离散分布,或一个对称的正态

分布。

4.2 实验操作

(1)在开始程序(或者桌面图标)中找到WEKA3.6.2,单击即可启动WEKA,启动WEKA 时会发现首先出现的一个命令提示符。接着将出现如下Weka GUI Chooser界面。

(2)选择GUI Chooser中的探索者(Explorer)用户界面。点击预处理(Preprocess)功能按钮的,Open file,选择其中的“bank-data”数据作关联规则的分析。打开“bank-data.csv”,可以看到“Current relation”、“Attributes”“Selected attribute”三个区域。

(3)对于原始数据“bank-data.csv”的预处,删去属性“id”,保存为ARFF格式后,修改属性“children”为分类型。这样得到的数据文件为“bank.arff”,含600条实例。

(4)用“Explorer”打开刚才得到的“bank.arff”,并切换到“Cluster”选项卡。点击“Choose”在随后打开的层级式菜单中的选择“SimpleKMeans”,这是WEKA中实现K均值的算法。点击旁边的文本框,修改“numClusters”为6,说明我们希望把这600条实例聚成6类,即K=6。下面的“seed”参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置,先设定为10。

(7)选中“Cluster Mode”的“Use training set”,点击“Start”按钮,观察右边“Clusterer output”给出的聚类结果。也可以在左下角“Result list”中这次产生的结果上点右键,“View in separate window”在新窗口中浏览结果。

(8)实验结果:

结果中有这么一行字样:

Within cluster sum of squared errors: 1604.7416683433223

这是评价聚类好坏的标准,数值越小说明同一簇实例之间的距离越小。“seed”参数的变化,导致得到的这个数值也发生变化。通过多尝试变化seed值,并取使得数值最小的seed 值。

接下来“Cluster centroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean);分类型的就是它的众数(Mode),也就是说这个属性上取值为众数值的实例最多。对于数值型的属性,还给出了它在各个簇里的标准差(Std Devs)。最后的“Clustered Instances”是各个簇中实例的数目及百分比。

为了观察可视化的聚类结果,在左下方“Result list”列出的结果上右击,点“Visualize cluster assignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,第二行的“color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。

可以在这里点“Save”把聚类结果保存成ARFF文件。在这个新的ARFF文件中,“instance_number”属性表示某实例的编号,“Cluster”属性表示聚类算法给出的该实例所在的簇。

4.3 扩展学习

(1)选择其他数据集来对其进行k-means聚类分析,并对其聚类结果进行分析研究。(2)通过对其参数的修正完善加深理解k-means聚类分析算法。

五、实验总结

本次weka的运行实验进行的很顺利,通过它我学习了聚类分析的基本概念、各种数据类型、聚类方法的分类。掌握了典型划分方法K均值和K中心点算法的基本原理、特点、优缺点。学会并应用划分方法中K均值和K中心点算法对数据进行聚类分析。

相关文档
最新文档