聚类算法总览

聚类分析就是在没有给定类别标签的情况下,根据数据相似性来进行分组的方法,是一种无监督的算法。聚类根据数据自身的距离或相似度将其划分为若干组,划分的原则是组内距离最小化而组间距离最大化。

常用聚类方法

类别 包括的主要算法
划分方法 k-means(k-平均)、k-medoids(k-中心点)、Clarans(基于选择的算法)
层次分析方法 BIRCH(平衡迭代规约和聚类)、CURE(代表点聚类)、CHAMELEON(动态模型)
基于密度的方法 DSBCAN(基于高密度连接区域)、DENCLUE(密度分布函数)、OPTICS(对象排序识别)
基于网格的方法 STING(统计信息网络)、CLIOUE(聚类高维空间)、WAVE-CLUSTER(小波变化)
基于模型的方法 统计学方法、神经网络方法

常用聚类分析算法

算法名称 算法描述
k-means k-均值聚类,在最小化误差函数的基础上将数据划分为预定的类数k.原理简单,便于处理大量数据。
k-中心点 k-均值算法对孤立点敏感性,k-中心点算法不采用簇中对象的平均值作为簇中心,而选用簇中离平均值最近的对象作为簇中心
系统聚类

系统聚类也称为多层次聚类,分类的单位由高到低呈树形结构,且所处的位置越低,其所包含的对象就越少,但这些对象间的共同

特征越多,该方法只适合在小数据量的时候使用,数据量大的时候速度会非常慢。

聚类主要函数列表

对象名 函数功能 所属工具箱
kmeans k-均值聚类 sklearn.cluster
AffinityPropagation 吸引力传播聚类,07年提出,几乎优于所有其他方法,不需要指定聚类数,但运行效率较低 sklearn.cluster
MeanShift 均值漂移聚类算法 sklearn.cluster
SpectralClustering 谱聚类,具有效果比k均值好,速度比k均值快等特点 sklearn.cluster
AgglomerativeClustering 层次聚类,给出一颗聚类层次树 sklearn.cluster
DBSCAN 具有噪声的基于密度的聚类方法 sklearn.cluster
BIRCH 综合的层次聚类算法,可以处理大规模数据的聚类 sklearn.cluster

k-means聚类的过程:

1. 首先,我们选择一些类/组,并随机初始化它们各自的中心点。为了算出要使用的类的数量,最好快速查看一下数据,并尝试识别不同的组。中心点是与每个数据点向量长度相同的位置。

2. 通过计算数据点与每个组中心之间的距离来对每个点进行分类,然后将该点归类于组中心与其最接近的组中。

3. 根据这些分类点,我们利用组中所有向量的均值来重新计算组中心。

 4. 重复这些步骤来进行一定数量的迭代,或者直到组中心在每次迭代后的变化不大。你也可以选择随机初始化组中心几次,然后选择看起来提供了最佳结果的运行。

计算

聚类方法 优点 缺点
k-means 速度快,计算少 初始聚类随机,结果重复性差
     
     
     
     
     

参考资料:

1、python数据分析与挖掘实战

2、https://mp.weixin.qq.com/s/abD7Lk8V_c9WujzsmzTmgw

 

原文地址:https://www.cnblogs.com/enhaofrank/p/12831114.html