机器学习学习笔记--七种聚类算法

聚类算法对比

我们已经了解了非监督学习中十分流行的 K-Means 聚类算法。它简单实用,易于实现。其实,Scikit-learn 中还包含有其他聚类算法,每一种算法都有自己的一些特长。

1 Mini Batch K-Means

实现方法:sklearn.cluster.MiniBatchKMeans

Mini Batch K-Means 整体上和 K-Means 很相似,它是 K-Means 的一个变种形式。与 K-Means

不同的地方在于,其每次从全部数据集中抽样小数据集进行迭代。Mini Batch K-Means

算法在不对聚类效果造成较大影响的前提下,大大缩短了计算时间。

2 Affinity Propagation

实现方法:sklearn.cluster.AffinityPropagation

Affinity Propagation 又被称为亲和传播聚类。Affinity Propagation

是基于数据点进行消息传递的理念设计的。与 K-Means 等聚类算法不同的地方在于,亲和传播聚类不需要提前确定聚类的数量,即 K

值。但是运行效率较低。

3 Mean Shift

实现方法:sklearn.cluster.MeanShift

MeanShift 又被称为均值漂移聚类。Mean Shift 聚类的目的是找出最密集的区域,

同样也是一个迭代过程。在聚类过程中,首先算出初始中心点的偏移均值,将该点移动到此偏移均值,然后以此为新的起始点,继续移动,直到满足最终的条件。Mean

Shift 也引入了核函数,用于改善聚类效果。除此之外,Mean Shift 在图像分割,视频跟踪等领域也有较好的应用。

4 Spectral Clustering

实现方法:sklearn.cluster.SpectralClustering

Spectral Clustering

又被称为谱聚类。谱聚类同样也是一种比较常见的聚类方法,它是从图论中演化而来的。谱聚类一开始将特征空间中的点用边连接起来。其中,两个点距离越远,那么边所对应的权值越低。同样,距离越近,那么边对应的权值越高。最后,通过对所有特征点组成的网络进行切分,让切分后的子图互相连接的边权重之和尽可能的低,而各子图内部边组成的权值和经可能高,从而达到聚类的效果。谱聚类的好处是能够识别任意形状的样本空间,并且可以得到全局最优解。

5 Agglomerative Clustering

实现方法:sklearn.cluster.AgglomerativeClustering

Agglomerative Clustering

又被称为层次聚类。层次聚类算法是将所有的样本点自下而上合并组成一棵树的过程,它不再产生单一聚类,而是产生一个聚类层次。层次聚类通过计算各样本数据之间的距离来确定它们的相似性关系,一般情况下,距离越小九代表相似度越高。最后,将相似度越高的样本归为一类,依次迭代,直到生成一棵树。由于层次聚类涉及到循环计算,所以时间复杂度比较高,运行速度较慢。

6 Birch 聚类

实现方法:sklearn.cluster.Birch

Birch 是英文 Balanced Iterative Reducing and Clustering Using Hierarchies 的简称,它的中文译名为「基于层次方法的平衡迭代规约和聚类」,名字实在太长。

Birch 引入了聚类特征树(CF树),先通过其他的聚类方法将其聚类成小的簇,然后再在簇间采用 CF 树对簇聚类。Birch 的优点是,只需要单次扫描数据集即可完成聚类,运行速度较快,特别适合大数据集。

7 DBSCAN

实现方法:sklearn.cluster.DBSCAN

DBSCAN 是英文 Density-based spatial clustering of applications with noise 的简称,它的中文译名为「基于空间密度与噪声应用的聚类方法」,名字同样很长。

DBSCAN 基于密度概念,要求聚类空间中的一定区域内所包含的样本数目不小于某一给定阈值。算法运行速度快,且能够有效处理特征空间中存在的噪声点。但是对于密度分布不均匀的样本集合,DBSCAN 的表现较差。

你可能感兴趣的:(机器学习学习笔记--七种聚类算法)