聚类算法研究

聚类算法研究

@(聚类)[定义|常用算法|算法比较]

1.聚类的基本概念

1.1定义

聚类是数据挖掘中的概念,就是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。

1.2聚类和分类的区别

Clustering (聚类):聚类的时候,大多数情况下我们并不知道数据有多少类,简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此 clustering 通常并不需要使用训练数据进行学习,这在Machine Learning中被称作unsupervised learning (无监督学习)。

Classification (分类):对于一个classifier,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做supervised learning (监督学习)。

1.3聚类过程

1.数据准备:包括特征标准化和降维;
2.特征选择:从最初的特征中选择最有效的特征,并将其存储于向量中;
3.特征提取:通过对所选择的特征进行转换形成新的突出特征;
4.聚类(或分组):首先选择合适特征类型的某种距离函数(或构造新的距离函数)进行接近程度的度量,而后执行聚类或分组;
5.聚类结果评估:是指对聚类结果进行评估,评估主要有3种:外部有效性评估、内部有效性评估和相关性测试评估。

1.4衡量聚类算法优劣的指标

1..处理大的数据集的能力;
2.处理任意形状,包括有间隙的嵌套的数据的能力;
3.算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;
4.处理数据噪声的能力;是否需要预先知道聚类个数,是否需要用户给出领域知识;
5.算法处理有很多属性数据的能力,也就是对数据维数是否敏感。

2.聚类方法的分类

主要分为层次化聚类算法,划分式聚类算法,基于密度的聚类算法,基于网格的聚类算法,基于模型的聚类算法等。

2.1层次化聚类方法

透过一种层次架构方式,反复将数据进行分裂或聚合。典型的有BIRCH算法,CURE算法,CHAMELEON算法,Sequence data rough clustering算法,Between groups average算法,Furthest neighbor算法,Neares neighbor算法等。

典型凝聚型层次聚类:
先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。

算法流程:
1.将每个对象看作一类,计算两两之间的最小距离;
2.将距离最小的两个类合并成一个新类;
3.重新计算新类与所有类之间的距离;
4.重复2、3,直到所有类最后合并成一类。

2.2 划分式聚类算法

预先指定聚类数目或聚类中心,反复迭代逐步降低目标函数误差值直至收敛,得到最终结果。K-means,K-modes-Huang,K-means-CP,MDS_CLUSTER, Feature weighted fuzzy clustering,CLARANS等

经典K-means算法流程:
1.随机地选择k个对象,每个对象初始地代表了一个簇的中心;
2.对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;
3.重新计算每个簇的平均值,更新为新的簇中心;
4.不断重复2、3,直到准则函数收敛。

2.3 基于模型的聚类算法

为每簇假定了一个模型,寻找数据对给定模型的最佳拟合,同一”类“的数据属于同一种概率分布,即假设数据是根据潜在的概率分布生成的。主要有基于统计学模型的方法和基于神经网络模型的方法,尤其以基于概率模型的方法居多。一个基于模型的算法可能通过构建反应数据点空间分布的密度函数来定位聚类。基于模型的聚类试图优化给定的数据和某些数据模型之间的适应性。

2.3.1SOM神经网络算法:

该算法假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间(n维)到输出平面(2维)的降维映射,其映射具有拓扑特征保持性质,与实际的大脑处理有很强的理论联系。SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。

算法流程
1.网络初始化,对输出层每个节点权重赋初值;
2.将输入样本中随机选取输入向量,找到与输入向量距离最小的权重向量;
3.定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢;
4.提供新样本、进行训练;
5.收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。

3.常见聚类算法介绍:

https://blog.csdn.net/abc200941410128/article/details/78541273

参考资料:
知乎:
https://www.zhihu.com/question/34554321
CSDN:
https://blog.csdn.net/abc200941410128/article/details/78541273
简书:
https://www.jianshu.com/p/fc91fed8c77b

    原文作者:聚类算法
    原文地址: https://blog.csdn.net/xz1308579340/article/details/80186052
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞