数据分析方法-聚类算法
文章目录
- 一、定义
- 二、聚类、分类区别分类
- 三、聚类常用算法
- 1.划分聚类 k-means、k-medoids、k-modes、k-medians、kernel k-means
- 2.层次聚类 Agglomerative 、divisive、BIRCH、ROCK、Chameleon
- 3.密度聚类 DBSCAN、OPTICS
- 5.模型聚类 GMM
- 6.图聚类 Spectral Clustering(谱聚类)
一、定义
聚类(Clustering)就是一种寻找数据之间内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作簇。处于相同簇中的数据实例彼此相同,处于不同簇中的实例彼此不同。数据之间的相似性是通过定义一个距离或者相似性系数来判别的。
二、聚类、分类区别分类
分类 | 聚类 |
---|---|
是一种有监督式的学习过程 | 是一种无监督式的学习过程 |
其初始和结果都是有标签式标记 | 其初始和结果无标签式标记 |
其结果是有意义的分类 | 其结果无意义的分类 |
是示例式学习 | 是观察式学习 |
三、聚类常用算法
1.划分聚类 k-means、k-medoids、k-modes、k-medians、kernel k-means
基于划分的聚类方法是一种自顶向下的方法,对于给定的 n 个数据对象的数据集 D,将数据对象组织成 k(k≤n) 个分区,其中,每个分区代表一个簇。示意图:
2.层次聚类 Agglomerative 、divisive、BIRCH、ROCK、Chameleon
基于层次的聚类方法是指对给定的数据进行层次分解,直到满足某种条件为止。该算法根据层次分解的顺序分为自底向上法和自顶向下法,即凝聚式层次聚类算法和分裂式层次聚类算法。
1)自底向上法。
首先,每个数据对象都是一个簇,计算数据对象之间的距离,每次将距离最近的点合并到同一个簇。然后,计算簇与簇之间的距离,将距离最近的簇合并为一个大簇。不停地合并,直到合成了一个簇,或者达到某个终止条件为止。
簇与簇的距离的计算方法有最短距离法、中间距离法、类平均法等,其中,最短距离法是将簇与簇的距离定义为簇与簇之间数据对象的最短距离。自底向上法的代表算法是AGNES(AGglomerativeNESing)算法。
2)自顶向下法。
该方法在一开始所有个体都属于一个簇,然后逐渐细分为更小的簇,直到最终每个数据对象都在不同的簇中,或者达到某个终止条件为止。自顶向下法的代表算法是 DIANA(DivisiveANAlysis)算法。
基于层次的聚类算法的主要优点包括,距离和规则的相似度容易定义,限制少,不需要预先制定簇的个数,可以发现簇的层次关系。基于层次的聚类算法的主要缺点包括,计算复杂度太高,奇异值也能产生很大影响,算法很可能聚类成链状。
3.密度聚类 DBSCAN、OPTICS
基于密度的聚类方法的主要目标是寻找被低密度区域分离的高密度区域。与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的簇。
基于密度的聚类方法是从数据对象分布区域的密度着手的。如果给定类中的数据对象在给定的范围区域中,则数据对象的密度超过某一阈值就继续聚类。
这种方法通过连接密度较大的区域,能够形成不同形状的簇,而且可以消除孤立点和噪声对聚类质量的影响,以及发现任意形状的簇。示意图:
4.网格聚类 STING
基于网格的聚类方法将空间量化为有限数目的单元,可以形成一个网格结构,所有聚类都在网格上进行。基本思想就是将每个属性的可能值分割成许多相邻的区间,并创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性空间包含该对象的值.
基于网格的聚类方法的主要优点是处理速度快,其处理时间独立于数据对象数,而仅依赖于量化空间中的每一维的单元数。这类算法的缺点是只能发现边界是水平或垂直的簇,而不能检测到斜边界。另外,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数级增长。
示意图:
5.模型聚类 GMM
基于模型的聚类方法是试图优化给定的数据和某些数学模型之间的适应性的。该方法给每一个簇假定了一个模型,然后寻找数据对给定模型的最佳拟合。假定的模型可能是代表数据对象在空间分布情况的密度函数或者其他函数。这种方法的基本原理就是假定目标数据集是由一系列潜在的概率分布所决定的。
下图给出了对基于划分的聚类方法和基于模型的聚类方法进行了对比。左侧给出的结果是基于距离的聚类方法,核心原则就是将距离近的点聚在一起。右侧给出的基于概率分布模型的聚类方法,这里采用的概率分布模型是有一定弧度的椭圆。标出了两个实心的点,这两点的距离很近,在基于距离的聚类方法中,它们聚在一个簇中,但基于概率分布模型的聚类方法则将它们分在不同的簇中,这是为了满足特定的概率分布模型。
6.图聚类 Spectral Clustering(谱聚类)
基于图聚的聚类方法是把所有的数据看做空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低,而距离较近的两个点之间的边权重值较高,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能的低,而子图内的边权重和尽可能的高,从而达到聚类的目的。
数据分析方法-聚类算法相关推荐
- 大数据分析之聚类算法
数据分析之聚类算法 1. 什么是聚类算法 所谓聚类,就是比如给定一些元素或者对象,分散存储在数据库中,然后根据我们感兴趣的对象属性,对其进行聚集,同类的对象之间相似度高,不同类之间差异较大.最大特点就 ...
- dbscan和谱聚类_R 无监督聚类算法(1)K-means和层次聚类
首先我们要解决几个问题 聚类算法主要包括哪些算法? 主要包括:K-means.DBSCAN.Density Peaks聚类(局部密度聚类).层次聚类.谱聚类. 什么是无监督学习? • 无监督学习也是相 ...
- 炼数成金数据分析课程---17、机器学习聚类算法(后面要重点看)
炼数成金数据分析课程---17.机器学习聚类算法(后面要重点看) 一.总结 一句话总结: 大纲+实例快速学习法 主要讲解常用聚类算法(比如K-means等)的原理及python代码实现:后面学习聚类的 ...
- 基于聚类算法的城市餐饮数据分析与店铺选址
温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 餐饮业生意好坏的影响因素通常有很多,包括店铺菜系.口味.服务态度.周边环境.人口密度.所在区域.人均 ...
- 数据分析——K-Means(K均值聚类算法)——糖潮丽子
申明:文章内容是作者自己的学习笔记,教学来源是开课吧讲师梁勇老师. 讲师介绍:梁老师 <细说Java>与<Java深入解析>图书作者.一线互联网资深数据分析专家,超过十年软件开 ...
- 【数据挖掘】基于划分的聚类方法 ( K-Means 算法简介 | K-Means 算法步骤 | K-Means 图示 )
文章目录 一. 基于划分的聚类方法 二. K-Means 算法 简介 三. K-Means 算法 步骤 四. K-Means 方法的评分函数 五. K-Means 算法 图示 一. 基于划分的聚类方法 ...
- 【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )
文章目录 I . 聚类主要算法 II . 基于划分的聚类方法 III . 基于层次的聚类方法 IV . 聚合层次聚类 图示 V . 划分层次聚类 图示 VI . 基于层次的聚类方法 切割点选取 VII ...
- 【聚类算法】sklearn聚类方法详解
转自:https://blog.csdn.net/ustbbsy/article/details/80960652 感谢博主 1 KMeans 1.1 算法描述 随机选择k个中心 遍历所有样本,把样本 ...
- 聚类算法 距离矩阵_快速且不需要超参的无监督聚类方法
论文: Efficient Parameter-free Clustering Using First Neighbor Relations Efficient Parameter-free Clust ...
最新文章
- C#几种访问修饰符理解
- CSS中可以和不可以继承的属性
- 天合光能环卫机器人_无人驾驶已在南京多个领域落地!无人环卫,离全面落地还有多久...
- like 正则 mysql_mysql中使用LIKE,正则_MySQL
- 10 tf.data模块
- 【算法学习】【图像增强】【Retinex】Retinex Image Processing(NASA)
- matlab改进 otsu法,otsu算法---matlab实现,和一种改进算法
- 手机摄像头改笔记本外接摄像头
- java web 打包工具_java web 项目打包(war 包)并部署
- android中间件开发技术,基于Android的移动应用开发中间件技术研究与实现
- 南宁Java程序员平均工资_南宁程序员平均工资 在南宁做程序员有一万工资吗
- java 图片清晰度_Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
- android定义圆角layout,Android布局切圆角
- 计算机更改锁屏密码忘记了怎么办,win10锁屏密码忘记了怎么办_w10忘记锁屏密码的处理步骤...
- android广告轮播无限
- 程序员装B小技巧——管理你的桌面
- 实验 基本交换机设置
- matlab 逻辑回归实现,逻辑回归原理介绍及Matlab实现
- pythonocc 如何把TopoDS_Edge转换成Geom_Curve
- SQL Server 比较日期大小的方法