首页 > 代码库 > 聚类算法小结

聚类算法小结

一、聚类:聚类也称之为自动分类,是一种无监督的学习方法。算法的原则是基于度量数据对象之间的相似性或相异性,将数据对象集划分为多个簇;相比较于分类技术,聚类只需要较少的专家知识(领域知识),就可以自动发掘数据集中的群组。

二、基本的聚类方法包括:

1、划分方法:该方法通常基于距离使用迭代重定位技术,通过将一个对象移入另外一个簇并更新簇心,典型的算法有K-均值算法和K-中心点算法(二者的主要区别在于计算簇心的方法不同),其中K-均值算法的解对噪声和初始簇心比较敏感,K-中心点算法弥补了前者对噪声敏感的缺点,但二者的可伸缩性都不是太好、并且需要初始化簇的数量。

2、层次方法:该方法立求把数据集划分成不同层次上的组群,形成“树”状结构。典型的方法包括:凝聚层次聚类(自底向上的方法)和分裂层次聚类,一图胜千言:

技术分享

3、基于密度的聚类方法:划分和层次方法都是通过距离度量确定数据对象间的相似性,通过发现的模式都为球状簇,而对于其他形状簇,都无法识别该簇的凸区域,基于密度的方法正是克服了以上方法的这一缺点。基本方法有基于高密度连通区域的聚类和基于密度分布函数的聚类。该方法首先随机初始化一个簇心p(核心对象),(1)在sigma半径范围内搜索p的临近对象,若其临近对象数大于阀值,则确定该初始化对象作为簇C的簇心并将临近对象加入簇C中,(2)对C中的每个对象重复步骤1,直到所有对象都完成簇的分类。基于高密度连通区域聚类的具体方法如下:

技术分享

以上都是一些比较常用且较为基本的聚类方法,在进行算法选用时,主要从算法的可伸缩性、离线/在线聚类、精确度要求、约束情况、噪声及数据分布本身的特点等考虑。

本文也是在阅读<数据挖掘概念与技术>一书基础上,结合自身使用情况做的一点总结,如有错误,敬请指正。

聚类算法小结