聚类
一、分级聚类 Hierarchical Cluster
分级聚类通过连续不断的将最为相似的群组两两合并,来构造一个群组的层次结构。其中的每个群组都是从单一元素开始,在每次迭代的过程中,都会计算两个群体之间的距离,并将距离最近的两个群组合并。并重复这一过程,直到只剩一个群组。
代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等;
二、划分法
使用这个基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法;
1、 K-Means Cluster
K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。
原理如图:
公式:
1、随机选取K个质心的值
2、计算各个点到质心的距离
3、将点的类划分为离他最近的质心,形成K个cluster
4、根据分类好的cluster,在每个cluster内重新计算质心(平均每个点的值)
5、重复迭代2-4步直到满足迭代次数或误差小于指定的值
2、K-medoids
1、随机选取K个质心的值 (质心必须是某些样本点的值,而不是任意值)
2、计算各个点到质心的距离
3、将点的类划分为离他最近的质心,形成K个cluster
4、根据分类好的cluster,在每个cluster内重新计算质心:
4.1 计算cluster内所有样本点到其中一个样本点的曼哈顿距离和(绝对误差)
4.2 选出使cluster绝对误差最小的样本点作为质心
5、重复迭代2-4步直到满足迭代次数或误差小于指定的值
以上就可以看出两者之间的区别:
k-means的质心是各个样本点的平均,可能是样本点中不存在的点。k-medoids的质心一定是某个样本点的值。
三、密度算法
基于密度的方法(density-based methods),基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。
这个方法的指导思想就是,只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。
代表算法有:DBSCAN算法、OPTICS算法、DENCLUE算法等;
四、图论聚类法
图论聚类方法解决的第一步是建立与问题相适应的图,图的节点对应于被分析数据的最小单元,图的边(或弧)对应于最小处理单元数据之间的相似性度量。因此,每一个最小处理单元数据之间都会有一个度量表达,这就确保了数据的局部特性比较易于处理。图论聚类法是以样本数据的局域连接特征作为聚类的主要信息源,因而其主要优点是易于处理局部数据的特性。
五、网格算法
基于网格的方法(grid-based methods),这种方法首先将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。这么处理的一个突出的优点就是处理速度很快,通常这是与目标数据库中记录的个数无关的,它只与把数据空间分为多少个单元有关。
代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法;
六、模型算法
基于模型的方法(model-based methods),基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。
通常有两种尝试方向:统计的方案和神经网络的方案。
上一篇: softmax 回归的简洁实现
下一篇: 百度编辑器前面自动加换行问题