作者:禅与计算机程序设计艺术
1.简介
1.1 概念阐述
聚类分析(Cluster Analysis)是一种无监督学习方法,它可以对数据集中的数据点进行自动分类,将相似的数据划分到同一个组中。聚类分析最初由唐奇安·李维奇于上世纪70年代提出,被广泛应用于数据挖掘、数据可视化、图像处理等领域。
1.2 聚类算法的种类
目前,主要聚类算法有基于距离的聚类算法、基于密度的聚类算法、层次聚类算法等。本文所要讨论的聚类算法就是基于距离的聚类算法。
(1)K-means聚类算法
K-means聚类算法是最简单的、常用的基于距离的聚类算法。该算法由四个步骤构成:
1)初始化:随机选取k个质心,把所有样本点分配到最近的质心所属的簇。
2)聚类:计算每个样本点到各个质心的距离,将样本点分配到距其最近的质心所属的簇。
3)重新计算质心:对每一个簇中的样本点,重新计算该簇的质心,使得簇的中心位置尽量贴近所有的样本点。
4)迭代结束条件:判断是否达到收敛条件。若达到则跳出循环;否则转至第2步。
K-means聚类算法的缺点在于:当簇内样本点数量过少时,可能导致较大的方差,聚类结果不够好。同时,由于初始值设置不当,K-means聚类算法可能陷入局部最小值或震荡。另外,K-means聚类算法无法直接给出数据的类别标签,只能给出聚类后的簇号标签。
(2)密度聚类算法(DBSCAN)
Density-Based Spatial Cluster