定义:
根据待分类模式特征的相似或相异程度将数据样本进行分组 。目的是用于知识发现而不是用于预测 。
分类:
主要分为:层次化聚类,划分式聚类,基于密度的聚类和基于网格的聚类。
基于划分
k-means
优势:(1) 时间复杂度与数据集大小呈线性关系,(2) 它收敛于局部最优解
缺点:(1)传统的 K-means 使用欧氏距离,仅适用于球形数据,(2) 对噪声和孤立点较为敏感。 (3)需要提前设定聚类的组数。
其他算法:K-medoid、K-modes 和K-prototypes
一篇论文通过改进的遗传算法优化k-means,可以优化中心点。(这样初始中心点就不是随机选择而是根据数据集确定的)虽然能提升准确率,但该优化算法会增加很多计算量,降低效率,还是需要预先确定聚类数目。
层次聚类
不断地将数据进行聚合或分裂 。重点是组间距离度量方法的选择。广泛使用的距离度量方法:最小距离、最大距离、平均值的距离、平均距离。
凝聚的层次聚类常见算法:Karypis 等提出的 CHAMELEON、Guha 等提出的 ROCK 和 CURE等
分裂的的层次聚类算法:Steinbach 等 提出的 bisecting K-means、Boley提出的 PDDP 等
优点:不用预先指定聚类数目。能清晰表达组与组之间的层次关系。
缺点:在上一层次的组形成后,后续无法调整,即无法回溯。复杂度较高0(n2),处理大规模数据时效率低下。
基于密度的聚类
原理是把量化的网格空间进行聚类法,这个算法一般与数据集的大小没有关系,计算时间复杂度只取决于网格单元的数量。
优点:在于它可以大幅提高计算效率;
缺点:很难检测到斜侧边界的聚类,只能针对垂直或水平的聚类。
常见的基于网格的聚类算法有 STING、WaveCluster、CLIQUE 等。