几种计算机视觉中常用的聚类算法(K-means, Agglomerative clustering, Mean shift, Spectral clustering)

来源:互联网 发布:网络缓存级别 影音先锋 编辑:程序博客网 时间:2024/05/19 14:38

前言:计算机视觉是让计算机理解图像与视频,本系列博客的目的在于加深自己在学习计算机视觉过程中对相关知识理解与回顾。其中很多内容参照:教材《ComputerVision: Algorithms and Applications》,教材《Learning Image Processing with OpenCV》工具书《LearningOpenCV》,国外大学的课程《Computer Vision》和课程《Computer Vision》。


对于机器学习而言,聚类常常应用于离散情况下的非监督学习算法之中,如下图所示。


聚类的总体目标是使得最小化目标函数:


聚类的方法很多,常用的包括(K-means, Agglomerative clustering,mean shift, Spectral clustering)。

1.        K-means

核心思想为迭代的指定点到最近的聚类中心。聚类算法会收敛到局部极小值。

 

算法的有点包括:

l  简单快速(不针对大型的聚类问题)

l  容易实现

l  能很好的表示数据

 

缺点包括

l  需要设定k

l  对outliers很敏感

l  收敛到局部极小值

l  对于大型的聚类问题,其算法复杂度较高,可能导致运行很慢

 

基本原理:





2.        Agglomerative clustering

基本思想为:从每一个点开始作为一个类,然后迭代的融合最近的类。能创建一个树形层次结构的聚类模型

 

算法优点为:

l  易于实现,具有广泛的应用

l  拥有一定的自适应形状

l  可提供层级聚类

 

算法缺点:

l  仍然需要选择聚类的个数或者设置相关的阈值

l  可能会导致聚类不平衡(如一个类超大,一个类超小)

 

基本原理为:





3.        Mean shift

算法优点为:

l  对outliers很鲁棒

l  不需要预先设聚类的个数或者区域

 

算法缺点为:

l  需要设定核的尺寸

l  不适合特征维数很高的聚类

 

基本原理为:(算法流程+源码:http://blog.csdn.net/hjimce/article/details/45718593)





4.        Spectral clustering

参见(https://www.cs.cmu.edu/~aarti/Class/10701/slides/Lecture21_2.pdf)




0 0
原创粉丝点击