weka中文使用说明(三)

2.3聚类

2.3.1 Cluster面板介绍

Cluster面板如图2.3.1-1所示。

weka中文使用说明(三)_第1张图片

图2.3.1-1 Cluster面板

Cluster Mode 一栏用来决定依据什么来聚类以及如何评价聚类的结果。前三个选项和分类的情况是一样的:Usetraining set , Supplied test set and Percentage split——区别于现在的数据是要聚到某个类中,而不是预测为某个指定的类别。第四个模式,Classesto clusters evaluation,是要比较所得到的聚类与在数据中预先给出的类别吻合得怎样。和Classify面板一样,下方的下拉框是用来选择作为类别的属性的。

在Clustermode之外,有一个Storeclusters for visualization的勾选框,该框决定了再训练完算法后可否对数据进行可视化。对于非常大的数据集,内存可能成为瓶颈时,不勾选这一项应该会有帮助。

在对一个数据集聚类时,经常会遇到某些属性被忽略的情况。Ignoreattributes可以弹出一个小窗口,选择哪些是需要忽略的属性。点击窗口中单个属性将使它高亮显示,按住SHIFT键可以连续的选择一串属性,按住CTRL键可以单个选择。点击Select按钮决定接受所作的选择。下一次聚类算法运行时,被选的属性将被忽略。

其余项的意思和分类面板相同。

2.3.2 算法应用

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

K均值算法首先随机的指定K个簇中心。然后:1)将每个实例分配到距它最近的簇中心,得到K个簇;2)计分别计算各簇中所有实例的均值,把它们作为各簇新的簇中心。重复1)和2),直到K个簇中心的位置都固定,簇的分配也固定。
    上述K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。WEKA将自动实施这个分类型到数值型的变换,而且WEKA会自动对数值型的数据作标准化。因此,对于原始数据“bank-data.csv”,我们所做的预处理只是删去属性“id”,保存为ARFF格式后,修改属性“children”为分类型。这样得到的数据文件含600条实例。

算法过程:

1.        用“Explorer”打开刚才得到的数据文件,并切换到“Cluster”。

2.        点“Choose”按钮选择SimpleKMeans,这是Weka中实现K均值的算法。

3.        点击旁边的文本框,修改numClusters为6,说明我们希望把这600条实例聚成6类,即K=6。下面的seed参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。我们不妨暂时让它就为10。

4.        选中“ClusterMode”的“Usetraining set”,点击“Start”按钮,观察右边“Clusterer output”给出的聚类结果。也可以在左下角“Resultlist”中这次产生的结果上点右键,“View inseparate window”在新窗口中浏览结果。

结果如图2.3.2-1所示。weka中文使用说明(三)_第2张图片

图2.3.2-1聚类分析结果

结果解释:

首先我们注意到结果中有这么一行: Within cluster sum of squared errors: 1604.7416693522332

这是评价聚类好坏的标准,数值越小说明同一簇实例之间的距离越小。也许你得到的数值会不一样;实际上如果把“seed”参数改一下,得到的这个数值就可能会不一样。我们应该多尝试几个seed,并采纳这个数值最小的那个结果。例如我让“seed”取100,就得到Within cluster sum of squared errors: 1555.6241507629218 我该取后面这个。当然再尝试几个seed,这个数值可能会更小。
    接下来“Clustercentroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean);分类型的就是它的众数(Mode), 也就是说这个属性上取值为众数值的实例最多。对于数值型的属性,还给出了它在各个簇里的标准差(StdDevs)。
    最后的“ClusteredInstances”是各个簇中实例的数目及百分比。
    为了观察可视化的聚类结果,我们在左下方“Resultlist”列出的结果上右击,点“Visualizecluster assignments”。弹出的窗口给出了各实例的散点图如图2.3.2-2所示。最上方的两个框是选择横坐标和纵坐标,第二行的“color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。 可以在这里点“Save”把聚类结果保存成ARFF文件。在这个新的ARFF文件中,“instance_number”属性表示某实例的编号,“Cluster”属性表示聚类算法给出的该实例所在的簇。

weka中文使用说明(三)_第3张图片

图2.3.2-2聚类分析散点图

你可能感兴趣的:(weka)