1.1.2研究意义
聚类分析近年来发展十分迅速,是探索性数据挖掘的主要任务之一,是用于统计数据分析的常用技术,在机器学习、模式识别、图像分析、信息检索、生物信息学、数据压缩和计算机图形学等领域较活跃[3],[6]。生活中很多数据都是混合型数据,比如一个网站的浏览情况(包括性别、年龄、职业、浏览页面数等变量)[9],对混合型数据进行聚类分析并用R软件实现,可以解决这些领域中的很多问题,使样本数据的分布清晰地以聚类谱系图呈现出来。
1.2混合型数据的聚类方法及研究现状
1.2.1混合型数据的聚类方法
混合型数据的聚类分析主要采用划分方法中的PAM、CLARA、CLARANS算法和K-prototypes算法,本文主要介绍PAM算法及CLARA算法处理混合型数据。PAM算法和CLARA算法是两个经典的K-medoids算法,是K-means算法的改进[14]。K-means算法通过计算每个类的平均值作为聚类中心,这使得K-means算法对异常值较敏感[13];PAM、CLARA算法则通过改进,随机选取k个样本点作为聚类中心,这使得PAM、CLARA算法较K-means算法稳健。K-means算法只能对数值型数据进行聚类,但PAM算法和CLARA算法可以将名义型变量和顺序型变量转化成连续型变量,然后进行再聚类分析[15]。
1.2.2 K-medoids算法的研究现状
由于一些经典的算法,如K-means算法,只能对数值型数据进行聚类,而随着大数据时代的到来,很多数据集都呈现混合型属性的特性,既包括连续型数据,又包括分类型数据。然而,对混合型数据的聚类算法的研究,不仅少,而且聚类性能和聚类质量等还有待不断改进。当然,为了改进对数值型数据的限制,可以将分类型数据转化成连续型数据,这样就可以用K-medoids等算法处理混合型数据的聚类问题了。
本文主要论述的是基于划分的K-medoids算法及其对混合型数据的聚类分析。1987年,KaufmanRousseevw提出了PAM(PartitioningAroundMethods)算法,这是典型的K-medoids算法,也是最早提出的K-medoids算法,可以实现对混合型数据的聚类分析[22]。由于PAM算法只适合对小数据集进行聚类,对大数据集不具有伸缩性,因此国内外的学者一直致力于提高PAM聚类算法的性能,对PAM算法进行了改进。1990年,KaufmanRousseevw又提出了结合PAM算法的CLARA(ClusteringLARgerApplication)算法,CLARA算法也是K-mediods算法之一。它从原始的大数据集中抽取一小部分样本,然后对样本数据采取PAM算法,因此可以实现对大数据集合进行聚类[26]。
1994年,R.NgandJ.Han提出了CLARANS(ClusteringLargerApplicationbaseduponRANdomizedSearch),CLARANS算法是另一种K-medoids算法,它将采样技术和PAM算法结合起来,是对CLARA算法的聚类质量和可伸缩性的改进[23]。1999年,Huang等人将K-modes算法与K-means算法进行结合,进一步提出了K-prototypes算法,它使用频率的方法来选择聚类中心,使其可以对包含顺序型数据、名义型数据和连续性数据的混合型数据进行聚类[20],[25]。随后,又在K-prototypes的基础上提出了模糊K-prototypes算法[24]。2007年,暨南大学的方匡南在“基于数据挖据的分类和聚类算法研究及R语言实现”中,提出了混合型数据的距离计算方法及CLARA算法处理混合型数据聚类,并首次在国内使用R语言实现数据挖掘算法[13]。
1.2.3 K-medoids算法存在的问题
早期的K-medoids算法存在一定的局限性[13],[22]:
(1)对大的数据集合没有很好的伸缩性,甚至无法实现;
(2)只能对数值型数据进行聚类,非数值型数据要转化成数值型数据;