大家好,上周我着重研究了对于聚类分析的一些基础的理论的知识学习,比如包括公式的推导,距离求解的方法等方面,这一周我结合资料又对系统聚类分析法和动态聚类分析法进行了一些学习,希望通过这一篇文章可以来对这两种方法来进行比较,依次来更好地学习.
一:系统聚类分析
1:系统聚类一次形成以后就不能再改变,所以这就需要我们在第一次分析的时候就要比较的准确,因此我们也需要准确率更高更优秀的分类方法.
2:相应的计算量可能会很大,比如说Q型系统聚类法的聚类的过程就是在样本间距离矩阵的计算上进行加深从而进行的.
3:当样本量很大的时候,需要占据很大的计算机内存,并且在合并类的过程中,需要把每一类的样本和其他样本间的距离进行一一的比较,从而决定应该合并的类别,这样的话就需要消耗大量的时间和计算机资源
二:动态聚类分析:
动态聚类分析又称为逐步分析法,基本的业务逻辑是先粗略的进行一次分类,然后按照一些局部最优的算法来计算修改不合理的分类,直到分类比较合理为止,比较适用于大样本的Q型聚类分析这样的聚类.
三:所使用的R语言函数:
在这里我们使用的是R语言当中提供的动态聚类的函数kmeans()函数,kmeans()函数采用的是K-均值计算法,实际上这是一个逐一进行修改的方法.
kmeans()的主要形式是:
kmeans(x,centers,iter.max=10,nstart=1,algorithm=c())
x是数据组成的矩阵或者数据集,
centers是聚类的个数或者初始类的中心
iter.max=10,代表的是最大迭代数缺省时为10
nstart表示随机集合的个数
algorithm,代表的是动态聚类的算法
现在通过一个实例来介绍这个过程:
第一步:载入原始数据并且做处理
输入这些数据是一个痛苦的过程,请大家自行体验:
接下来,将使用scale函数对数据进行中心化或者标准化的处理,这样做的目的是为了消除这些小数量级别影响以及一些单位的影响
第二步:使用kmeans()函数进行动态的聚类分析,选择生成类的个数为5个:
产生这样的结果:
这个生成的size表示的是每一个类的个数,means代表着每一个类的平均值,clustering表示每个类的分类情况
第三步:查看分类结果
通过sort()函数查看分类结果,从而得到每个类的成员
以上就是通过一个实例来阐述动态聚类分析的一个过程,请多多指教