当前位置:文档之家› 聚类分析综述

聚类分析综述

聚类分析

专业:05信息管理与信息系统姓名:蒲骏逸学号:200530341432

目录

题目要求 (2)

聚类分析作业 (2)

1.系统聚类 (2)

2.K-Means 快速聚类 (6)

A)使用Clementine进行K均值类 (6)

Clementine的K均值聚类的结果 (8)

B)使用SPSS进行K均值聚类 (11)

SPSS的K均值聚类结果 (12)

C)Clementine与SPSS聚类结果的对比 (15)

D)建立模型并检验 (16)

E)数据检验结果的分析 (18)

聚类分析

专业:05信息管理与信息系统姓名:蒲骏逸学号:200530341432

题目要求:

借助数据挖掘软件Clementine进行地下燃气管网安全评价的分析与评价。已知:八个影响因素、107条评价记录

聚类分析:

对8个评价指标定性取值定义相应的定量取值。在评价指标的107条记录中,每一条记录作一样本,分别进行系统聚类与K均值聚类,聚20类,比较两种聚类选出的最好样本类与最差样本类的区别。并从每类中挑选一个作神经网络的学习样本,共20个,从每类中随机挑选2个样本,共40个,作神经网络的检验样本。比较没有聚类选择样本的BP学习与检验正确率的差异。

一,系统聚类

首先进行系统聚类,但Clementine11.1中,并没有提供系统聚类的模型,因此这里使用SPSS来进行系统聚类。

系统聚类,在SPSS中,称为分层聚类

选定菜单后,在弹出的设置对话中,添加要尽心聚类分析的字段,并设定相应的距离计算方法,这里我选的是类平均法(Between-groups linkage),聚类类型为Cases(样本聚类),并要求画出水晶图和谱系图。

设定好后,运行即可得出SPSS的系统聚类结果,一下是谱系图

* * * * * * H I E R A R C H I C A L C L U S T E R A N A L Y S I S * * * * * * Dendrogram using Average Linkage (Between Groups)

Rescaled Distance Cluster Combine

C A S E 0 5 10 15 20 25

Label Num +---------+---------+---------+---------+---------+

106 ??

107 ??

101 ??

104 ????????

105 ???

102 ???

103 ???????????????

85 ????

86 ????

76 ????

83 ?????????

84 ???????

77 ????

79 ????

36 ????

38 ??????????

35 ????????????????

67 ?????????????????????????

25 ??????????

26 ???????????

24 ???????????

31 ?????

32 ?????

3 ????????????????????????

9 ?????

30 ?????

17 ?????

18 ??????

6 ????????????

16 ?????

21 ????????????

22 ??????

82 ????

89 ??????????

81 ?????

27 ?????

28 ?????????????

4 ??????

19 ???????

23 ?????

14 ?????

15 ?????

11 ?????

13 ?????

8 ??????????

10 ????

7 ????

99 ????

100 ????

87 ??????

97 ?????

98 ?????

95 ???????????

96 ??????????

88 ???????????

47 ?????????????

2 ???????????????????????????????????????74 ???????????

48 ??????????????????

5 ??????????

33 ???????

29 ?????????????

20 ????????????????????????????????????????????????12 ?????????????

72 ?????????

73 ????????????????????????

34 ?????

64 ??????????

1 ????

46 ????

70 ??????????

45 ???????

71 ???????????

65 ?????????????????

66 ???????

68 ???????

69 ????????

37 ??????

42 ??????

44 ???????????????????????????

40 ??????????

41 ????

39 ????????????

93 ?????

94 ?????

78 ???????????

91 ??????

92 ??????????

80 ???????

90 ???????

43 ????????????

49 ??????

62 ?????????

63 ?????

57 ????????

60 ??????????

61 ?????

58 ?????

59 ????????

55 ????

56 ????

50 ????

53 ?????????

54 ???

51 ???

52 ???

75 ????????????????????????

由于不太熟悉SPSS的分析结果,所以也没有得到太多的结论,只是简单地画出其谱系图,因为没有类似距离之类的指标,所以也不知道如何在一个类内找到代表性的样本。所以对系统聚类后的结果,并没有建立神经网络模型。而K-Means才是重点。

二,K-Mean快速聚类

我将分别使用Clementine和SPSS进行K均值聚类,分别建立模型进行预测。

A)使用Clementine进行K均值聚类

使用Clementine进行K均值聚类,首先接入数据源,这里直接使用之前神经网络中已经处理好的Excel数据文件,然后设定好输入方向后,就接入K-Means节点。并设定相应参数,这里的参数,主要是设定聚类的数,题目要求聚20类。选择“生成距离字段”可以查看各个样本到中心的距离,并一次判断样本是否接近中心,所以有必要选上。

执行模型后,浏览下模型的信息

左图显示,K均值把107个样本分成20类后,每个类有多少个样本。右图则是具体某个类的信心,首先显示了该类中各指标的平均值,也就是聚类中心。

首先,来看看Clementine的K均值聚类的大概信息,下表显示了分类号从1-20

对107个样本进行Clementine的K均值聚类的结果,其中@$KMKMeans是

且大多样本的距离都在0.3一下,这主要是因为已经把指标量化的结果

B)使用SPSS进行K均值聚类

使用SPSS进K-Means聚类,其可以设置的参数要比Clementine多。导入数据后,就可进行相关设定了,如图:

这里主要改变一下几个设置

Number of Clusters:设为20,即聚成20类。

Method: Iterate and Classifly,选定,意为先定初始类别中心点,而后

按KMeans算法迭代分类,中心可变。

Classify Only,不选,此项意为仅按初始中心点分类。

Maximum:指定最大迭代次数。

User running means:先定每个样本被分配到一个类后,即重新计算中心。

执行进行聚类后,我们可以看到报告信息,现在整理一下,

列出对QCL-2是样

C)Clementine与SPSS聚类结果的对比。

粗看之下,SPSS的聚类结果似乎更好,其样本的离中心的距离似乎比较小,

这样一看,

是由于两个软件进行分类时,合并的顺序不一样。我将两个样本数排序,再对比下:

红色底纹的是SPSS的类内样本数,经过排序后,会发现,他们20类中有13类的样本数是一样的,其余不一样的也差距不大,这是不是说明,其实两个软件给出的结果只是分类号不一样,其实分类大概是相同的呢?答案是肯定的,这可以通过直接对比两者对107个数据的分类表中看出来。

D)建立模型并检验

这里,从分好的20个类中,每个类挑选一个有代表性的样本,一共20个样本样本,建立BP模型,然后从20个类中,随机挑选2个样本,组成40个检验样本集合。我将分别对Clementine的分类结果和SPSS的分类结果都进行这个过程,以作对比。

首先是挑选学习样本的问题,怎样的样本才算是“有代表性”呢?我认为:1)样本距离中心的距离要少

2)当同时有几个样本距离中心的距离相同的时候,如果各个指标相同的话,就随机挑选,如果指标值不全相同的话,则挑选出现得比较多的

那个。

挑选好学习样本后,就可以利用Clementine建立神经网络了,这里,我的

建立模型后,则挑选40个学习样本,在这里,我是使用C++为每一类产生两个随机数(在样本数范围内),然后再根据产生的随机数来从每类中挑选两个样本,但由于有些分类只有一个样本,所以这些类只能选一个,也就是说,挑选出来的预测样本不足40个。以下为C++代码:

由于使用Clementine和SPSS的分类结果有差异,所以针对两者挑选的检验样本也有所不一样,其中Clementine的检验样本有34个,SPSS的有35个。

接下来,分别对按Clementine的分类的数据和按SPSS分类的数据进行检验,在检验的过程中,还是用了之前神经网络建立的模型(没有聚类)的结果进行对比。如图,Clementine数据流图

Clementine聚类数据的预测检验柱状图:29/34=85.3%的正确率。

Clementine聚类数据的预测检验柱状图:30/35=85.6%的正确率。

E)数据检验结果的分析

从刚才的检验情况表,可以看出

1)使用SPSS来分类的结果稍微比使用Clementine分类的结果好,这

是因为SPSS的分类更合理吗?来看以下分类后的样本:

(@$KMKMeans是Clementine的分类号,QCL_1是SPSS的分类号)

情况不一样。

首先,最后一个样本的“阳极与电位”明显不同于于其余12个样本,因此SPSS将其独立分为一个类,从大概上讲,比Clementine合理。

其次,前12个样本的8个指标是完全一样,所以SPSS把他们都看作一类(类号13),而Clementine却把这12个样本分为两个类,这直观上,就显得不合理

了。

总上述,从直观上分析,似乎SPSS的分类更为合理,但由于Clementine 的计算过程的封装的,所以没办法知道出现这个结果的原因。

2)无论是何种模型,其预测的准确性平均只有86%,是否样本本身出问题呢?

当样本的指标相同时,其输出(即专家评估级别)也应该相同,然而像这样,输入指标相同而输出不一样的样本可以说不是少数。这就是说,样本本身存在比较严重的矛盾,所以,无论建立何种模型,检验的结果的正确性都不可能达到100%。

要解决这样的问题,除了要得到更好的数据以外,还可以通过更改指标量化的方法,因为出现这种情况,一般有两种原因

一,数据不好,错误数据多。

二,由于量化的原因,简化了很多信息,可能把本来不属于一类的样本归为有相同指标的样本。

3)没有聚类的模型和聚类后的模型,准确性总体来说有一些提高,这可能是因为没有聚类的模型考虑了更多的因素,而聚类的模型:

一方面,其学习样本考虑到因素不够多。

一方面,可能学习的样本正是一些不正常的样本,正如上面提到的,样

本本身有矛盾。但矛盾不表现在指标上,只表现在输出上,这就是说,

可能学习样本是这样的一个样本,他虽然指标和同类中的其他样本一样,但其输出却不同于同类中的大部分呢样本

相关主题
文本预览
相关文档 最新文档