聚类简介
正所谓“人以群分、物以类聚”。在日常生活中人们经常会遇到各种各样的分类为题。人,分为男人、女人;车辆分为机动车、非机动车;文字分为中文、英文、法文、德文等等。
可见,具有一定的相似特征的事务就可以将它们归为一类。而聚类算法就是解决这类分类问题的数学算法。
聚类(Cluster)分析是由若干模式(Pattern)组成的,通常,模式是一个度量(Measurement)的向量,或者是多维空间中的一个点。聚类分析以相似性为基础,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性。
聚类的方法主要有:划分法(Partitioning Methods)、层次法(Hierarchical Methods)、基于密度的方法(density-based methods)、基于网格的方法(grid-based methods)、基于模型的方法(Model-Based Methods)。每一种方法下面又有多种算法。下面仅以划分法中的K-means算法为例简单介绍一下。
假设平面上有一堆点,如下图:
显然,图上的点分为“三堆”。那么,怎样用数学的方法实现分类呢?
K-means算法的过程是:
1从n个数据对象任意选择 k 个对象作为初始聚类中心;
2 对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;
3 然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);
4 不断重复这一过程直到标准测度函数开始收敛为止;或达到其他终止条件。
这样,各点就被分配到了与他们最相近的中心去了,结果就是分成了K类。那么,K取多少呢?上图中,如果K取2,可能分成左右、或是上下两堆;如果K取3 ,可能分成右上、左下、右下三堆。关于K的取法又有许多不同的方法,这里就不展开介绍了。
聚类的应用十分广泛,在统计、金融、市场分析、娱乐、信息安全等多个领域均有应用。
(工程中心—李全宁)