“物以类聚,人以群分”,这是人类几千年来认识世界和社会拥有的本能。
在生物学中,聚类可以辅助动植物分类;在地理信息系统中,聚类可以找出具有相似用途的区域;在商业中,聚类可以帮助市场分析人员对消费者的消费记录分析……聚类作为大数据分析中的应用中最常用的经典算法之一,有着广泛的应用场景。那么聚类究竟是什么呢?
什么是聚类分析
聚类分析是数据挖掘采用的起步技术,也是数据挖掘入门的一项关键技术。
聚类分析的概念很简单,即在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法,顾名思议就是将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。
通过对一组对象进行分组的任务,使得同一组中的对象与组中的其他对象在某种意义上更相似。
有时会根据数据内在性质会将数据进行特征分类,每一聚合类中的元素都会在某种条件具有相同或相似的特征。
与分类模型需要使用有类标记样本构成的训练数据不同,聚类模型可以建立在无类标记的数据上,是一种非监督的学习算法。
聚类虽然类似于分类,但与分类的目的不同,是针对数据的相似性和差异性将一组数据分为几个类别。属于同一类别的数据间的相似性很大,但不同类别之间数据的相似性很小,跨类的数据关联性很低。聚类与分类的不同还在于,聚类所要求划分的类是未知的。
聚类分析的重要性
聚类分析是探索性数据挖掘的主要任务,也是统计数据分析的常用技术,被用于包括机器学习、模式识别、图像分析、信息检索、生物信息学、数据压缩和计算机图形学等在内的诸多领域。各行各业的大数据或宏观或微观的任何价值发现,无不借助于大数据聚类分析的结果。
因此,数据分析和挖掘的首要问题是聚类,这种聚类是跨学科、跨领域、跨媒体的。大数据聚类是数据密集型科学的基础性、普遍性问题。聚类可以说是挖掘大数据资产价值的第一步。
常见聚类方法
常用的聚类算法分为基于划分、层次、密度、网格、统计学、模型等类型的算法,典型算法包括K均值(经典的聚类算法)、DBSCAN、两步聚类、BIRCH、谱聚类等。
作为数据挖掘中很活跃的一个研究领域,聚类分析有多种算法。
1)基于划分聚类算法:
k-means:是一种典型的划分聚类算法,它用一个聚类的中心来代表一个簇,即在迭代过程中选择的聚点不一定是聚类中的一个点,该算法只能处理数值型数据
k-modes:K-Means算法的扩展,采用简单匹配方法来度量分类型数据的相似度
k-prototypes:结合了K-Means和K-Modes两种算法,能够处理混合型数据
k-medoids:在迭代过程中选择簇中的某点作为聚点,PAM是典型的k-medoids算法
2)基于层次聚类算法:
CURE:采用抽样技术先对数据集D随机抽取样本,再采用分区技术对样本进行分区,然后对每个分区局部聚类,最后对局部聚类进行全局聚类
ROCK:也采用了随机抽样技术,该算法在计算两个对象的相似度时,同时考虑了周围对象的影响
CHEMALOEN(变色龙算法):首先由数据集构造成一个K-最近邻图Gk ,再通过一个图的划分算法将图Gk 划分成大量的子图,每个子图代表一个初始子簇,最后用一个凝聚的层次聚类算法反复合并子簇,找到真正的结果簇
3)基于密度聚类算法:
DBSCAN:DBSCAN算法是一种典型的基于密度的聚类算法,该算法采用空间索引技术来搜索对象的邻域,引入了“核心对象”和“密度可达”等概念,从核心对象出发,把所有密度可达的对象组成一个簇
GDBSCAN:算法通过泛化DBSCAN算法中邻域的概念,以适应空间对象的特点
4)基于网格的聚类算法:
STING:利用网格单元保存数据统计信息,从而实现多分辨率的聚类
WaveCluster:在聚类分析中引入了小波变换的原理,主要应用于信号处理领域。(备注:小波算法在信号处理,图形图像,加密解密等领域有重要应用,是一种比较高深和牛逼的东西)
CLIQUE:是一种结合了网格和密度的聚类算法
5)基于神经网络的聚类算法:
自组织神经网络SOM:该方法的基本思想是--由外界输入不同的样本到人工的自组织映射网络中,一开始时,输入样本引起输出兴奋细胞的位置各不相同,但自组织后会形成一些细胞群,它们分别代表了输入样本,反映了输入样本的特征
6)基于统计学的聚类算法:
COBWeb:COBWeb是一个通用的概念聚类方法,它用分类树的形式表现层次聚类
AutoClass:是以概率混合模型为基础,利用属性的概率分布来描述聚类,该方法能够处理混合型的数据,但要求各属性相互独立
网友评论