前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见聚类算法介绍

常见聚类算法介绍

原创
作者头像
咖喱猫
修改2024-03-29 11:27:27
2470
修改2024-03-29 11:27:27

目前,有大量的聚类算法。而对于具体应用,聚类算法的选择取决于数据的类型、聚类的目的。如果聚类分析被用作描述或探查的工具,可以对同样的数据尝试多种算法,以发现数据可能揭示的结果。

主要的聚类算法可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法。

每一类中都存在着得到广泛应用的算法,例如:划分方法中的k-means聚类算法、层次方法中的凝聚型层次聚类算法、基于模型方法中的神经网络聚类算法等。 目前,聚类问题的研究不仅仅局限于上述的硬聚类,即每一个数据只能被归为一类,模糊聚类[10]也是聚类分析中研究较为广泛的一个分支。模糊聚类通过隶 属函数来确定每个数据隶属于各个簇的程度,而不是将一个数据对象硬性地归类到某一簇中。目前已有很多关于模糊聚类的算法被提出,如著名的FCM算法等。

本文主要对k-means聚类算法、凝聚型层次聚类算法、神经网络聚类算法之SOM,以及模糊聚类的FCM算法通过通用测试数据集进行聚类效果的比较和分析。

1 四种常用聚类算法研究

1.1 k-means聚类算法

k-means是划分方法中较经典的聚类算法之一。由于该算法的效率高,所以在对大规模数据进行聚类时被广泛应用。目前,许多算法均围绕着该算法进行扩展和改进。

k-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。k-means算法的处理过程如下:首先,随机地 选择k个对象,每个对象初始地代表了一个簇的平均值或中心;对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;然后重新计算每个簇的平均值。 这个过程不断重复,直到准则函数收敛。 k-means聚类算法的算法流程如下: 输入:包含n个对象的数据库和簇的数目k; 输出:k个簇,使平方误差准则最小。 步骤:   (1) 任意选择k个对象作为初始的簇中心;   (2) repeat;   (3) 根据簇中对象的平均值,将每个对象(重新)赋予最类似的簇;   (4) 更新簇的平均值,即计算每个簇中对象的平均值;   (5) until不再发生变化。

1.2 层次聚类算法

根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法分裂的层次聚类算法

凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。 这里给出采用最小距离的凝聚层次聚类算法流程:  (1) 将每个对象看作一类,计算两两之间的最小距离;  (2) 将距离最小的两个类合并成一个新类;  (3) 重新计算新类与所有类之间的距离;  (4) 重复(2)、(3),直到所有类最后合并成一类。

1.3 SOM聚类算法

SOM神经网络是由芬兰神经网络专家Kohonen教授提出的,该算法假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间(n维)到输出平面(2维)的降维映射,其映射具有拓扑特征保持性质,与实际的大脑处理有很强的理论联系。

SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。 学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。  算法流程:  (1) 网络初始化,对输出层每个节点权重赋初值;  (2) 将输入样本中随机选取输入向量,找到与输入向量距离最小的权重向量;  (3) 定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢;  (4) 提供新样本、进行训练;  (5) 收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。

1.4 FCM聚类算法

1965年美国加州大学柏克莱分校的扎德教授第一次提出了‘集合’的概念。经过十多年的发展,模糊集合理论渐渐被应用到各个实际应用方面。为克服非此即彼的分类缺点,出现了以模糊集合论为数学基础的聚类分析。用模糊数学的方法进行聚类分析,就是模糊聚类分析。 FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。该聚类算法是传统硬聚类算法的一种改进。 算法流程:  (1) 标准化数据矩阵;  (2) 建立模糊相似矩阵,初始化隶属矩阵;  (3) 算法开始迭代,直到目标函数收敛到极小值;  (4) 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 四种常用聚类算法研究
    • 1.1 k-means聚类算法
      • 1.2 层次聚类算法
        • 1.3 SOM聚类算法
          • 1.4 FCM聚类算法
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档