一、K-Means

算法步骤:

(1) 首先我们选择一些类/组,并随机初始化它们各自的中心点。中心点是与每个数据点向量长度相同的位置。这需要我们提前预知类的数量(即中心点的数量)。
(2) 计算每个数据点到中心点的距离,数据点距离哪个中心点最近就划分到哪一类中。
(3) 计算每一类中中心点作为新的中心点。
(4) 重复以上步骤,直到每一类中心在每次迭代后变化不大为止。也可以多次随机初始化中心点,然后选择运行结果最好的一个。

下图演示了K-Means进行分类的过程:

优点:

速度快,计算简便

缺点:

我们必须提前知道数据有多少类/组。
K-Medians是K-Means的一种变体,是用数据集的中位数而不是均值来计算数据的中心点。
K-Medians的优势是使用中位数来计算中心点不受异常值的影响;缺点是计算中位数时需要对数据集中的数据进行排序,速度相对于K-Means较慢。

二、均值漂移聚类

均值漂移聚类是基于滑动窗口的算法,来找到数据点的密集区域。这是一个基于质心的算法,通过将中心点的候选点更新为滑动窗口内点的均值来完成,来定位每个组/类的中心点。然后对这些候选窗口进行相似窗口进行去除,最终形成中心点集及相应的分组。

具体步骤:

1. 确定滑动窗口半径r,以随机选取的中心点C半径为r的圆形滑动窗口开始滑动。均值漂移类似一种爬山算法,在每一次迭代中向密度更高的区域移动,直到收敛。
2. 每一次滑动到新的区域,计算滑动窗口内的均值来作为中心点,滑动窗口内的点的数量为窗口内的密度。在每一次移动中,窗口会想密度更高的区域移动。
3. 移动窗口,计算窗口内的中心点以及窗口内的密度,知道没有方向在窗口内可以容纳更多的点,即一直移动到圆内密度不再增加为止。
4. 步骤一到三会产生很多个滑动窗口,当多个滑动窗口重叠时,保留包含最多点的窗口,然后根据数据点所在的滑动窗口进行聚类。

下图演示了均值漂移聚类的计算步骤:

下面显示了所有滑动窗口从头到尾的整个过程。每个黑点代表滑动窗口的质心,每个灰点代表一个数据点。

优点:

不同于K-Means算法,均值漂移聚类算法不需要我们知道有多少类/组。
基于密度的算法相比于K-Means受均值影响较小。

缺点:

(1)窗口半径r的选择可能是不重要的。

三、 基于密度的聚类方法(DBSCAN)

1.DBSCAN密度聚类简介

DBSCAN算法将数据点分为三类:

1.核心点:在半径Eps内含有超过MinPts数目的点。
2.边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内的点。
3.噪音点:既不是核心点也不是边界点的点。

2.DBSCAN算法的流程

1.将所有点标记为核心点、边界点或噪声点;
2.删除噪声点;
3.为距离在Eps之内的所有核心点之间赋予一条边,Eps 为设置的超参数,距离小于该值的簇将被合并;
4.每组连通的核心点形成一个簇,也就是簇合并;
5.将每个边界点指派到一个与之关联的核心点的簇中(哪一个核心点的半径范围之内)

其中标记核心点、边界点或噪声点的具体步骤如下:

1. 首先确定半径r和minPoints. 从一个没有被访问过的任意数据点开始,以这个点为中心,r为半径的圆内包含的点的数量是否大于或等于minPoints,如果大于或等于minPoints则改点被标记为central point,反之则会被标记为noise point。
2. 重复1的步骤,如果一个noise point存在于某个central point为半径的圆内,则这个点被标记为边缘点,反之仍为noise point。重复步骤1,直到所有的点都被访问过。

优点:不需要知道簇的数量

缺点:需要确定距离r和minPoints

四、用高斯混合模型(GMM)的最大期望(EM)聚类

K-Means的缺点在于对聚类中心均值的简单使用。下面的图中的两个圆如果使用K-Means则不能作出正确的类的判断。同样的,如果数据集中的点类似下图中曲线的情况也是不能正确分类的。

使用高斯混合模型(GMM)做聚类首先假设数据点是呈高斯分布的,相对应K-Means假设数据点是圆形的,高斯分布(椭圆形)给出了更多的可能性。我们有两个参数来描述簇的形状:均值和标准差。所以这些簇可以采取任何形状的椭圆形,因为在x,y方向上都有标准差。因此,每个高斯分布被分配给单个簇。
所以要做聚类首先应该找到数据集的均值和标准差,我们将采用一个叫做最大期望(EM)的优化算法。下图演示了使用GMMs进行最大期望的聚类过程。

具体步骤:

1. 选择簇的数量(与K-Means类似)并随机初始化每个簇的高斯分布参数(均值和方差)。也可以先观察数据给出一个相对精确的均值和方差。
2. 给定每个簇的高斯分布,计算每个数据点属于每个簇的概率。一个点越靠近高斯分布的中心就越可能属于该簇。
3. 基于这些概率我们计算高斯分布参数使得数据点的概率最大化,可以使用数据点概率的加权来计算这些新的参数,权重就是数据点属于该簇的概率。
4. 重复迭代2和3直到在迭代中的变化不大。

GMMs的优点:

GMMs使用均值和标准差,簇可以呈现出椭圆形而不是仅仅限制于圆形。K-Means是GMMs的一个特殊情况,是方差在所有维度上都接近于0时簇就会呈现出圆形。
GMMs是使用概率,所有一个数据点可以属于多个簇。例如数据点X可以有百分之20的概率属于A簇,百分之80的概率属于B簇。也就是说GMMs可以支持混合资格。

5. 凝聚层次聚类

层次聚类算法分为两类:自上而下和自下而上。凝聚层级聚类(HAC)是自下而上的一种聚类算法。HAC首先将每个数据点视为一个单一的簇,然后计算所有簇之间的距离来合并簇,知道所有的簇聚合成为一个簇为止。
下图为凝聚层级聚类的一个实例:

具体步骤:

1. 首先我们将每个数据点视为一个单一的簇,然后选择一个测量两个簇之间距离的度量标准。例如我们使用average linkage作为标准,它将两个簇之间的距离定义为第一个簇中的数据点与第二个簇中的数据点之间的平均距离。
2. 在每次迭代中,我们将两个具有最小average linkage的簇合并成为一个簇。
3. 重复步骤2知道所有的数据点合并成一个簇,然后选择我们需要多少个簇。

层次聚类优点:(1)不需要知道有多少个簇
(2)对于距离度量标准的选择并不敏感
缺点:效率低

主要参考:

  1. 常见的六大聚类算法_诗蕊的专栏-CSDN博客_聚类算法
  2. DBSCAN - bonelee - 博客园

dbscan算法中 参数的意义_常用聚类算法相关推荐

  1. dbscan算法中 参数的意义_详解DBSCAN聚类

    使用DBSCAN标识为员工分组 基于密度的噪声应用空间聚类(DBSCAN)是一种无监督的ML聚类算法.无监督的意思是它不使用预先标记的目标来聚类数据点.聚类是指试图将相似的数据点分组到人工确定的组或簇 ...

  2. dbscan算法中 参数的意义_基于变参数的DBSCAN算法

    安全模型.算法与编程 |34| 基于变参数的 DBSCAN 算法 ◆付泽强 王晓锋 (江南大学物联网工程学院 江苏 214122) 摘要:DBSCAN 算法是一种常用的基于密度的聚类算法,其优点在于性 ...

  3. dbscan算法中 参数的意义_无监督机器学习中,最常见的聚类算法有哪些?

    在机器学习过程中,很多数据都具有特定值的目标变量,我们可以用它们来训练模型. 但是,大多数情况下,在处理实际问题时,数据不会带有预定义标签,因此我们需要开发能够对这些数据进行正确分类的机器学习模型,通 ...

  4. 聚类算法的缺点_常用聚类算法

    一.K-Means 算法步骤: (1) 首先我们选择一些类/组,并随机初始化它们各自的中心点.中心点是与每个数据点向量长度相同的位置.这需要我们提前预知类的数量(即中心点的数量). (2) 计算每个数 ...

  5. 参数方程中参数的意义: 参数方程定义: 什么是参数方程: 参数方程与普通方程的公式

    目录 参数方程中参数的意义: 参数方程定义: 什么是参数方程: 参数方程与普通方程的公式: 举例: 参数方程: 参数方程中参数的意义: 参数方程中t的几何意义要看具体的曲线方程了,一般都是长度,角度等 ...

  6. 【机器学习】常用聚类算法 整理

    sparkML 常用聚类算法 http://spark.apache.org/docs/latest/mllib-clustering.html 如下为 机器学习聚类算法的理论知识: 在机器学习中,无 ...

  7. 道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类、蚁群算法等)

    道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类.蚁群算法等) 前言 一.聚类算法是什么? 二.道路匹配中常见聚类算法介绍 1.K-Means算法 2.基于时间和距离的 ...

  8. 【聚类算法】基于matlab划分法k-means聚类算法【含Matlab源码 1941期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[聚类算法]基于matlab划分法k-means聚类算法[含Matlab源码 1941期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  9. 无监督机器学习中,最常见4类聚类算法总结 | 技术头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 编译 | 安然.狄思云 来源 | 读芯术(ID:AI_Discovery) 在机器学习过程中,很多数据都具有特 ...

最新文章

  1. vue启动时报错,node-modules下xxx缺失
  2. 2.1.1 物理层的基本概念
  3. Ant Design Pro入门之简介
  4. IOS , plist 配置项说明
  5. oracle shrink space compact,oracle 学习笔记 Shrink 参数 compact
  6. leetcode122. 买卖股票的最佳时机 II
  7. 让我们深入了解PP YOLO做出的贡献
  8. Emacs代码折叠/显示
  9. python学习笔记爬虫——爬取网络表情包
  10. 金融专业英语词汇大全
  11. CWE ID 470:Use of Externally-Controlled Input to Select Classes or Code (‘Unsafe Reflection‘)
  12. 在Ubuntu上部署ROS以及如何搭建工作空间和功能包的创建与编译
  13. XMind 2022 for Mac(思维导图软件)V12.0.3中文免费版
  14. 史上最全——QQ秘籍之全攻略
  15. 剑侠世界3怎么快速起号?
  16. 神舟十二号出征星辰大海--麒麟信安操作系统筑牢“千年飞天梦”软件基石
  17. 小型数据库系统开发作业
  18. 人员招聘与培训实务【3】
  19. lopatkin俄大神精简Windows 10 Enterprise 19041.331 20H1 Release x86-x64 EN-RU PIP
  20. eyou怎样调用选项卡的后台数据

热门文章

  1. 目标检测————主干网络是否应该选用DenseNet(提问)
  2. K-means算法的学习笔记
  3. 如何在html嵌入html网页
  4. AcWing 1015. 摘花生 (DP)
  5. 在有空字符串的有序字符串数组中查找(二分)
  6. leetcode944. Delete Columns to Make Sorted
  7. ios唤起键盘后,页面不收回导致元素错位的问题.(譬如固定在底部的自定义键盘等)...
  8. 解决Vue编译和打包时频繁内存溢出情况CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory...
  9. codeforces 776C Molly's Chemicals(连续子序列和为k的次方的个数)
  10. 第39天-进程 _1(2013.09.11)