一张图片,由RGB三种通道表示,每个通道由8位表达,也就是2的3*8=2的24次方=1600万像素点(颜色),从1600万颜色找出K个点聚类。
图像占用空间的大小计算:
大小=分辨率*位深/8
分辨率=宽*高(如:1024*768,640*480)
位深:如24位,16位,8位
/8计算的是字节数。
例如:
一幅图像分辨率:1024*768,24位,则其大小计算如下:
大小=1024*768824/8=2359296byte=2304KB
k-mean缺陷:
1.最大的问题就是K的选值。
2.对噪声很敏感,所以使用k-medoids中心点来缓解对噪音的影响。
3.k-mean数据分类只有{0、1}属于硬分配。比如有时数据点位于中心边界线上;缺乏分配的不确定性概率度量(置信度)。
所以引出高斯混合模型(GMM)
高斯概率模型可以给出每一个点在属于哪一个类的概率。
总结:
k-mean;
1. complexity O(t,k,n,d) t:迭代次数 ;k:聚类点 ; n:像素点 ;d:维度深度
2. 优势: 简单 、快速
3.缺点:基于欧式距离、k取值;k-mean呈圆形(对图形的簇可以得到刚精确的分类);初始化和噪声敏感、数据点硬分类,无概率值置信度
GMM:
1. complexity O(t,k,n,d) t:迭代次数 ;k:聚类点 ; n:像素点 ;d:维度深度
2.优点:可以知道每个点在每个类中的概率值;抗噪最噪声更加稳定;
3.缺点:聚类数k取值不定;主要适用于凸簇,高斯分布呈椭圆形状(对椭圆的簇可以得到刚精确的分类);奇点问题(加判断可解决)
对于其他形状的簇可以使用谱聚类算法spectral clustering(耗时十几秒其他都在1秒左右)、基于密度的空间聚类DBSCAN;
spectral clustering谱聚类算法
谱聚类(spectral clustering)是广泛使用的聚类算法,谱聚类是基于图论的,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也不复杂。在处理实际的聚类问题时,个人认为谱聚类是应该首先考虑的几种算法之一。下面我们就对谱聚类的算法原理做一个总结。
原理:根据点云数据建立相似矩阵,然后进行拉普拉斯矩阵变换,通过高斯核距离的全连接方式进行特征值分解降维(复杂度O(n³)),然后进行使用最常用的无向图切图NCut(NormalizedCut)算法(将不同类的点连接线进行切割的最小代价,通过所切到的两个点连接线权重之和最小),最后使用k-mean算法进行分类。
谱聚类算法的主要优点有:
1)谱聚类只需要数据之间的相似度矩阵,因此对于处理稀疏数据的聚类很有效。这点传统聚类算法比如K-Means很难做到
2)由于使用了降维,因此在处理高维数据聚类时的复杂度比传统聚类算法好。
3)k是自动发现的
谱聚类算法的主要缺点有:
1)如果最终聚类的维度非常高,则由于降维的幅度不够,谱聚类的运行速度和最后的聚类效果均不好。2) 聚类效果依赖于相似矩阵,不同的相似矩阵得到的最终聚类效果可能很不同。
2)complexity O(n的三次方):1.拉普拉斯矩阵O(n*n*n)2. t:迭代次数 ;k:聚类点 ; n:像素点 ;d:维度深度