划分法:

K-means:随机选择k个类的初始中心,对每一个样本都求解到k个中心点的距离,将它归类到距离最短的中心所在的类别。通过计算与类别内样本平均距离最小的点作为新的中心点。直到类别的聚类中心点不发生变化

算法的时间复杂度是O(nkt),n是所有对象的数目,k是簇的数目,t是迭代的次数,这个算法是局部收敛的。

它找到的是使平方误差函数值最小的k个划分,当簇是密集的,球状的时候,聚类效果比较好。

特点:当噪声点比较多的时候,会对均值产生极大影响。需要事先确定k,会随机选择初始点为质心,计算每一个样本与质心之间的相似度j

K-medoids:

K中心点与K均值的不同点在于中心点的选取,在 k-means 中,将中心点取为当前 cluster 中所有数据点的平均值,在 k-medoids 中,将中心点的选取限制在当前 cluster 所包含的数据点的集合中。换句话说,在 k-medoids 算法中,我们将从当前 cluster 中选取这样一个点——它到其他所有(当前 cluster 中的)点的距离之和最小——作为中心点。

K中心点特点:

不容易受到那些由于误差之类的原因产生的脏数据的影响,一般只适合小数据量。

层次聚类

凝聚和分裂采用自下而上和自上而下策略把对象组织到层次结构,

凝聚方法从每个对象作为一个集合开始,迭代的合并这些集合,形成更大的集合。与此相反,分裂方法开始将所有给定的对象放入同一个集合中,迭代的分裂集合,形成较小的集合。

如果需要,计算邻近度矩阵

(2)Repeat

(3)合并最接近的两个簇

(4)更新邻近度矩阵,以反映新的簇与原来的簇之间的邻近性

(5)Until 仅剩下一个簇

邻近性度量:
(1)单链(MIN):邻近度定义为两个簇中任意两点之间的最短距离。擅长处理非椭圆形状的簇,对噪声和离群点很敏感。
(2)全链(团,MAX):邻近度定义为两个簇中任意两点之间的最长距离。
偏好球形簇,对噪声和离群点不太敏感,可能使大的簇破裂。
(3)组平均:两个簇的邻近度定义为不同簇的所有点对邻近度的平均值。是介于单链和全链之间的折中方法。
 
簇 和 的邻近度, 和 分别为簇 和 的大小。
(4)Ward方法(离差平方和法):两个簇的邻近度定义为两个簇合并时导致的平方误差的增量。目标函数与k均值相同。
 
 为簇的个数, 为第k个簇的平均值, 为第k个簇中对象的个数。

(5)质心方法:通过计算簇质心之间的距离来计算两个簇之间的邻近度。

凝聚层次聚类算法特点:

可以产生较高质量的聚类,受限于数据集的大小,且所有合并是最终的。

R中凝聚层次聚类算法实现:在cluster包中有该算法实现,具体方法

            ——hclust()

            ——agnes()

基于密度的聚类算法

基于密度的方法(density-based methods),基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。基于密度的聚类寻找被低密度区域分离的高密度区域。

这个方法的指导思想就是,只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。

DBSCAN是一种简单、有效的基于密度的聚类算法。

DBSCAN使用基于中心的方法,数据集中特定点的密度通过对该点Eps 半径之内的点计数。
核心点:这些点在基于密度的簇内部。如果某点的给定邻域(Eps)内的点的个数超过给定的阈值MinPts,则该点为核心点。
边界点:边界点不是核心点,但它落在某个核心点的邻域内。

噪声点:噪声点是既非核心点也非边界点的任何点。

DBSCAN不能很好反映高尺寸数据;不能很好反映数据集变化的密度;对于高维数据,点之间极为稀疏,密度就很难定义了。


基于网格的聚类算法

该方法是一种使用多分辨率的网络数据结构。它将对象空间量化为有限数目的单元,这些单元形成了网络结构,所有的聚类操作都在该结构上进行。这种方法的主要优点处理速度快,其处理的时间独立于数据对象数,而仅依赖于量化空间中每一维的单元数。


算法基本思想:将每个属性的可能值分割成许多相邻的区间,创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性区间包含该对象的值。

    基于网格的聚类算法

算法:基于网格的聚类算法

(1)定义一个网格单元

(2)将对象指派到合适的单元,并计算每个单元的密度

(3)删除密度低于指定的阈值的单元

(4)由邻近的稠密单元形成簇

连续属性离散化可以等宽区间,也可以等频率离散化,此处的阈值十分重要,阈值过大会丢失簇的部分,过小会让不同的簇合并,该算法不适用于高维数据——微阵列。

CLIQUE算法(综合了基于密度和基于网格的算法)
  CLIQUE算法即自动子空间聚类算法。该算法利用自顶向上方法求出各个子空间的聚类单元。CLUQUE算法主要用于找出在高维数据空间中存在的低维聚类。为了求出d维空间聚类,必须组合给出所有d-1维子空间的聚类,导致其算法的空间和时间效率都较低,而且要求用户输入两个参数:数据取值空间等间隔 距离和密度阔值。这2个参数与样本数据紧密相关,用户一般难以确定。CLIQUE算法对数据输人顺序不敏感。

CLIQUE算法特点:

发现的聚类类型是凸形或是球形,对脏数据或异常数据的敏感性一般,对数据输入顺序不敏感。

基于图论的聚类算法

该方法中,利用图论相关算法解决聚类问题,将聚类问题转换成组合优化问题,其基本思想是迭代的删除最长的边,且并不需要相似度计算,简化计算,节省时间,然后求解优化问题。

谱聚类算法特点:

实现简单,不会陷入局部最优解,对参数敏感,时间和空间复杂度大


六、基于模型的聚类算法
基于模型的方法(model-based methods),基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。
(6.1)EM算法
EM(期望最大化)算法通过不断改变簇属性值的隶属度来获得逐步优化的簇。1997 年,Mitchell 等人提出。
EM算法:
算法:EM算法
(1)选择模型参数的初始集(随机选择)
(2)Repeat
(3)期望步:对于每个对象,计算每个对象属于每个分布的概率,即计算 
 
 
(4)最大化步:给定期望步得到的概率,找出最大化该期望似然的新的参数估计。
 
(5)Until参数不再变化
其中, 是第j个分布产生一个对象的概率, 是对象 来自第j个分布的概率,K个分布,m个对象, 是第j个分布的参数, 是所有参数的集合。
EM算法特点:
可以使用合适的统计模型来捕获潜在簇,并且非常简洁,广泛应用于处理数据挖掘和统计学中的学习问题。然而,EM算法可能收敛不到最优解,而是收敛到局部极大点。
EM算法针对不同模型,高斯混合模型可以看成EM算法的一个现实中的应用。并且它的R实现:在mclust包中有该算法的实现——Mclust()
(高斯混合模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,它是一个将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。
所谓混合高斯模型(GMM)就是指对样本的概率密度分布进行估计,而估计采用的模型(训练模型)是几个高斯模型的加权和(具体是几个要在模型训练前建立好)。每个高斯模型就代表了一个类(一个Cluster)。对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率。然后我们可以选取概率最大的类所为判决结果。

    从中心极限定理的角度上看,把混合模型假设为高斯的是比较合理的,当然,也可以根据实际数据定义成任何分布的Mixture Model,不过定义为高斯的在计算上有一些方便之处,另外,理论上可以通过增加Model的个数,用GMM近似任何概率分布。)


(6.2)自组织映射SOM算法
SOM的目标是发现质心的集合(参考向量),并将数据集中的每个对象指派到提供该对象最佳近似的质心。
与增量K均值一样,每次处理一个数据对象并更新最近的质心,不同之处在于SOM赋予质心地形序,而且更新附近的质心。
基本SOM算法:
算法:基本SOM算法
(1)初始化质心
(2)Repeat
(3)     选择下一个对象
(4)     确定到该对象最近的质心
(5)     更新该质心和附近的质心,即在一个特定邻域内的质心
(6)Until质心改变不多或超过某个阈值
(7)指派每个对象到最近的质心,并返回簇和质心
SOM算法特点:
二维SOM可以建立各种量与关联每个质心(簇)的网格点的联系,并通过各种类型的图显示结果。例如,绘制与每个簇相关联的点数将揭示点和簇之间分布的图;SOM将相邻关系强加到结果集上,因此互为邻居的簇之间比非邻居的簇之间更相关。这种联系有助于聚类结果的解释和可视化,因此SOM应用于基因阵列数据。
但它也有一些局限性:用户必须选择参数,邻域函数,网格类型和质心个数;一个SOM簇通常并不对应于单个自然簇:当自然簇的大小、形状和密度不同时,SOM趋向于分裂或合并它们;SOM缺乏具体的目标函数:比较不同SOM聚类的结果是困难的;SOM不能保证收敛,但它通常收敛。
    R中SOM算法实现:在som包中有该算法实现,具体方法
            ——som() 

聚类算法总结 划分法,层次聚类,基于网格,基于密度,谱聚类,基于模型,模糊聚类相关推荐

  1. 聚类算法:Hierarchical Clustering层次聚类

    1. 层次聚类 1.1 层次聚类的原理及分类 1)层次法(Hierarchicalmethods):先计算样本之间的距离.每次将距离最近的点合并到同一个类.然后,再计算类与类之间的距离,将距离最近的类 ...

  2. 聚类算法(4)--Hierarchical clustering层次聚类

    目录 一.层次聚类 1.层次聚类的原理及分类 2.层次聚类的流程 3.层次聚类的优缺点 二.python实现 1.sklearn实现 2.scipy实现 树状图分类判断 一.层次聚类 1.层次聚类的原 ...

  3. 聚类算法(五)——层次聚类 linkage (含代码)

    聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...

  4. 【机器学习算法】聚类分析-2 聚类算法的分类,层次聚类算法的选择

    目录 聚类算法的分类 层次聚类的算法, 单一聚类法(single link) 完全链结法 平均链结法 中心链结法 Ward's法 我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主 目前进 ...

  5. 聚类算法(1)——层次、K-means聚类

    所谓聚类,就是将相似的事物聚集在一起,而将不相似的事物划分到不同的类别的过程,是数据分析之中十分重要的一种手段.比如古典生物学之中,人们通过物种的形貌特征将其分门别类,可以说就是一种朴素的人工聚类.如 ...

  6. birch聚类 java_10 聚类算法 - 代码案例四 - 层次聚类(BIRCH)算法参数比较

    需求: 基于scikit的API创建模拟数据,使用BIRCH算法对数据进行聚类操作,并比较n_clusters参数的作用. 参数threshold: 代表了FC-Tree中的参数T.叶子节点中每个CF ...

  7. 聚类算法(五)--层次聚类(系统聚类)及超易懂实例分析

    博客上看到的,叫做层次聚类,但是<医学统计学>上叫系统聚类(chapter21) 思想很简单,想象成一颗倒立的树,叶节点为样本本身,根据样本之间的距离(相似系数),将最近的两样本合并到一个 ...

  8. python网格搜索法_Python中基于网格搜索算法优化的深度学习模型分析糖尿病数据...

    介绍 在本教程中,我们将讨论一种非常强大的优化(或自动化)算法,即网格搜索算法.它最常用于机器学习模型中的超参数调整.我们将学习如何使用Python来实现它,以及如何将其应用到实际应用程序中,以了解它 ...

  9. 聚类算法_层次聚类_密度聚类(dbscan,meanshift)_划分聚类(Kmeans)详解

    注: 两整天的成果,谬误之处勿喷 1 聚类概述 样本 没有训练的样本 没有标注的样本 1.1 相似度度量 1.1.1 距离相似度度量 距离度量 dist(oi,oj)dist(o_{i},o_{j}) ...

最新文章

  1. Nginx的配置文件nginx.conf详解
  2. 从性能方面谈系统设计
  3. c监控进程发现未启动就启动进程_非常有用的16个Linux 服务器监控命令
  4. Uno 平台 一 WinUI终极跨平台方案(二)
  5. Hive分区和桶的概念
  6. 服务器云平台 系统,服务器云平台 系统
  7. Grid Coloring(AtCoder-2687)
  8. 去年我国科技研发投入1.76万亿元,与美国差距逐年缩小
  9. CodeFores 665D Simple Subset(贪心)
  10. linux4755代表什么权限,CentOS下chmod 755和4755的区别是什么?
  11. mysql数据库自定义输入法_如何使用Windows10自带输入法添加词库,方便打字
  12. 我的 Serverless 实战 — Serverless 腾讯云文字识别(OCR)详细部署过程
  13. python 0基础学习笔记6:OS模块、窗口控制、语言、内存修改
  14. zkLedger: Privacy-Preserving Auditing for Distributed Ledgers zkLedger:保护分布式分类帐的隐私审计
  15. 看了鲁迅的平面设计,很多设计师表示可能要转行了
  16. 黑鲨helo支持html吗,黑鲨游戏手机Helo发布 张大仙公布私人配置
  17. 英语基础知识:句子类型
  18. 【OpenGL 学习笔记】第 7 篇:绘制旋转立方体
  19. MFRC522使用、设计心得及详细教程资料
  20. 20221226英语学习

热门文章

  1. 【Qt】Qt学习笔记(更新中)
  2. android 距离测量工具,手机上有个小功能,可以精确的测量距离,比卷尺还要好用...
  3. 推荐几种简洁美观的博客背景效果
  4. COMSOL案例学习(1):顶盖驱动方腔流
  5. CM32M101A-B128-LQFP64
  6. JUnit不好用?也许你可以尝尝这些测试工具
  7. 风格迁移--生成你想要的风格
  8. 【Rust 日报】2022-01-09 又一个Rust中文教程《Rust语言圣经》
  9. IT30:IT部文化建设
  10. 蓝牙耳机怎样才知道充满电