聚类分析:附加的问题与算法第9章聚类分析:附加的问题与算法在各种领域,针对不同的应用类型,已经开发了大量聚类算法
在这些算法中没有一种算法能够适应所有的数据类型、簇和应用
事实上,对于更加有效或者更适合特定数据类型、簇和应用的新的聚类算法,看来总是有进一步的开发空间
我们只能说我们已经有了一些技术,对于某些情况运行良好
其原因是,在许多情况下,对于什么是一个好的簇集,仍然凭主观解释
此外,当使用客观度量精确地定义簇时,发现最优聚类问题常常是计算不可行的
比较k均值和DBSCANDBSCAN和k均值都是将每个对象指派到单个簇的划分聚类算法,但是K均值一般聚类所有对象,而DBSCAN丢弃被它识别为噪声的对象
K均值使用簇的基于原形的概念,而DBSCAN使用基于密度的概念
DBSCAN可以处理不同大小和不同形状的簇,并且不太受噪声和离群点的影响
K均值很难处理非球状的簇和不同大小的簇
当簇具有很不同的密度时,两种算法的性能都很差
K均值只能用于具有明确定义的质心(如均值或中位数)的数据
DBSCAN要求密度定义(基于传统的欧几里得密度概念)对于数据是有意义的
K均值可以用于稀疏的高维数据,如文档数据,DBSCAN通常在这类数据上性能很差,因为对于高维数据,传统的欧几里得密度定义不能很好处理
K均值和DBSCAN的最初版本都是针对欧几里得数据设计的,但是它们都被扩展,以便处理其他类型的数据
DBSCAN不对数据的分布做任何假定
基本k均值算法等价于一种统计聚类方法(混合模型),假定所有的簇都来自球形高斯分布,具有不同的均值,但具有相同的斜方差矩阵
DBSCAN和k均值都寻找使用所有属性的簇,即它们都不寻找可能只涉及某个属性子集的簇
K均值可以发现不是明显分离的簇,即便簇有重叠也可以发现,但是DBSCAN会合并有重叠的簇
K均值算法的时间复杂度是O(m),而