聚类(Clustering)分析是一个无监督学习(Unsupervised learning)过程,所谓物以类聚,人以群分。
其本质是:寻找联系紧密的事物进行区分,将数据划分为有意义或有用的簇
目标是:同簇内的数据对象的相似性尽可能大,不同簇间的数据对象的差异性尽可能大。
核心是:相似度计算
回顾一下:无监督学习(Unsupervised learning):是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。
具体包含:
划分聚类 层次聚类 基于密度 基于图论 基于网格 基于模型
K-means DIANA OPTICS Spectral STING COBWeb
K-medoids BIRCH DBSCAN CLIQUE CLASSIT
CLARANS Chameleon FDC WAVE-CLUSTER SOM
新发展的方法:
基于约束 基于模糊 基于粒度 量子聚类 核聚类 谱聚类
COD (Clustering
with Ob2structed
Distance) FCM SVDD/SVC 图论中的谱图
划分法(Partitioning methods):
给定一个有N个元组或者记录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类
每一个分组至少包含一个数据记录
每一个数据记录属于且仅属于一个分组(模糊聚类除外)
对于给定的K,算法首先给出一个初始的分组方法,之后通过反复迭代的方法改变分组,
使得每一个改进之后的分组方案都较前一次好
标准:同一分组中的记录越近越好,而不同分组中的记录越远越好
层次法(Hierarchical Clustering):
对给定的数据集进行层次似的分解,
直到某种条件满足为止。
分为“自底向上”和“自顶向下”两种方案。
"自底向上"方案: 初始时每一个数据记录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合 并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。
基于密度的聚类(density-based methods):
核心思想: 只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。
与其他方法的一个根本区别是: 它不是基于各种各样的距离的,而是基于密度的。这样能克服基于距离的算法只能发现“类圆形”的聚类的缺点。
基于图的聚类(Graph-based methods):
建立与问题相适应的图,图的节点对应被分析数据的最小单元,
图的边(或弧)对应于最小处理单元数据之间的相似性度量。
每一个最小处理单元数据之间都会有一个度量表达,这就确保了数据的局部特性比较易于处理。
图论聚类法是以样本数据的局域连接特征作为聚类的主要信息源,因而其主要优点是易于处理局部数据的特征。
基于网格的方法(grid-based methods):
将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。
优点就是处理速度很快,通常这是与目标数据库中记录的个数无关的,它只与把数据空间分为多少个单元有关。
基于模型的方法(model-based methods):
给每一个聚类假定一个模型,
然后去寻找能够很好的满足这个模型的数据集。
这样一个模型可能是数据点在空间中的密度分布函数或者其它。
潜在的假定:
目标数据集是由一系列的概率分布所决定的。
通常有两种尝试方向:
统计的方案和神经网络的方案。
聚类各效果.png
compare.png
sklearn_clustering.png
map详细: http://scikit-learn.org/stable/tutorial/machine_learning_map/
网友评论