首页 > 编程语言 >聚类算法

聚类算法

时间:2023-04-05 16:57:34浏览次数:39  
标签:基于 模型 算法 给定 聚类 数据

1.概念

聚类 -> 无监督学习(无分类、分组信息)
实现 -> 距离、相似性系数
目的 -> 数据预处理 -> 复杂数据结构(多维) -> 标准化
发现数据之间的依赖关系,删除或合并有密切依赖关系的数据

2.分类

1.基于划分的聚类方法

自顶向下
概念:n个元素组成的数据集D, 将数据分成k(k <= n)个簇
典型算法:k-means(k-平均), k-medoids(k-中心)
特点:
优 -> 收敛速度快
缺 -> 根据数据k可以合理的估计,初始中心的选择和噪声对聚类结果产生很大影响

2.基于层次的聚类方法

对数据进行层次分解,直到满足某种条件
自底向上
典型算法:凝聚式层次聚类 (AGNES(AGglomerativeNESing))
每个对象为一个簇,根据簇之间的距离,将距离最近的点合并到同一个簇,重复操作,直到达到某个终止条件为止
簇与簇之间距离计算:
1.最短距离法 -> 将簇与簇的距离定义为簇与簇之间数据对象的最短距离
2.中间距离法
3.类平均法
自顶向下
典型算法:分裂式层次聚类(DIANA(DivisiveANAlysis))
所有个体为一个簇,逐渐细分为更小的簇,直到每个数据对象都在不同的簇中,或达到某个中止条件

3.基于密度的聚类方法

寻找被低密度区域分离的高密度区域
特点:
1.基于距离的聚类算法的聚类结果是球状的簇,基于密度的聚类算法可以发现任意形状的簇
2.从数据对象分布的的密度着手,如果给定类的数据对象在给定的范围中,则数据对象的密度超过某一阈值就继续聚类
3.通过连接密度较大的区域,形成不同的簇,可以消除孤立点和噪声对聚类质量的影响,形成任意形状的簇
典型算法:DBSAN、OPTICS、DENCLUE

4.基于网格的聚类方法

将空间量化为有限数目的单元,形成一个网格结构,所有聚类都在网格上进行,建立网格单元的集合
特点:
优 -> 处理速度快,处理时间独立于数据对象数,仅依赖量化空间中每一维的单元数
缺 -> 只能发现边界是水平或垂直的簇,而不能检测到斜边界,而且在处理高维数据时,网格单元数目会随着属性维度的增长而成指数级增长

5.基于模型的聚类方法

优化给定数据和某些数学模型之间的适应性,给每一个簇假定了一个模型,寻找数据对给定模型的最佳组合
假定的模型可能是代表数据对象在空间分布情况的密度函数或者其他函数
原理:假定目标数据集是由一系列潜在的概率分布决定的
优化给定数据和某些数据模型之间的适应性

Question

1.基于模型的聚类方法,如何寻找数据对给定模型的最佳组合

基于模型的聚类方法中有很多算法,不同的算法在如何寻找数据对给定模型的最佳组合方面可能略有不同。不过一般来说,这些算法都需要先定义出一个合适的模型,并将数据按照这个模型进行分组,得到初始的聚类结果后,再通过优化算法不断调整分组的方式,以期得到更加合理的聚类结果。其中常用的优化算法包括k-means算法、层次聚类算法等。

具体而言,寻找数据对给定模型的最佳组合通常包括以下步骤:

1.选择合适的模型。不同的数据集适合不同的模型,因此首先需要选择适合当前数据集的合适的模型。
2.初始化。根据选择的模型,需要确定聚类的数量,并随机初始化一组聚类中心点。
3.计算每个数据点到各个聚类中心的距离。根据选定的相似度度量规则,计算每个样本点到每个聚类点的距离或者相似度。
4.将数据点分配到距离最近的聚类中心。每个数据点都属于距离他最近的聚类中心所在的簇。
5.调整聚类中心。将簇内所有数据点的坐标平均值作为新的聚类中心。
6.重复迭代,直到聚类中心不再发生变化或达到最大迭代次数时停止迭代。
7.评估聚类结果。通过一些指标(如轮廓系数、DB指数等)来评估当前的聚类结果是否合理,是否需要进一步优化。
以上是一般基于模型的聚类方法寻找数据对给定模型的最佳组合的大致流程。当然,具体实现还需要根据所使用的算法进行具体调整和优化。

2.k-means算法不是基于划分的聚类方法吗,为什么基于模型的聚类方法也会用到

k-means算法是一种基于划分的聚类算法,而基于模型的聚类方法则不一定是基于划分的,有些可能使用层次聚类等其他算法。在基于模型的聚类方法中,可能会选择合适的模型,如高斯混合模型、概率分布模型等,然后将数据按照这个模型进行聚类。以高斯混合模型为例,可以通过最大期望算法来估计模型参数,得到每个数据点属于每个混合成分的概率,并将概率最大的混合成分作为数据点所属的簇。因此,在基于模型的聚类方法中,可能会使用k-means算法等基于划分的聚类算法作为子任务来实现更复杂的聚类操作。

标签:基于,模型,算法,给定,聚类,数据
From: https://www.cnblogs.com/strivy/p/17289742.html

相关文章

  • 算法之回溯算法
    回溯法含义:类似枚举,一层一层往下递归寻找答案,尝试搜索答案,如果找到了答案,则返回答案,并且寻找其他可能的答案。如果没找到,则像上一层递归寻找可能的答案。回溯算法也是递归算法的一种。为什么要回溯呢?或者说为什么用到回溯算法呢?因为我们不是要找到一个排列就好了,而是需要找......
  • 算法思想
    \(\mathcal{Part}\)1.前提提要注意:本文为提高组难度的算法思想,主要为前缀和,差分等优化因为是思想,讲的会比较玄乎,能理解就好\(\mathcal{Part}\)2.双指针双指针通常解决区间问题步骤是,确定一个右节点或左节点作为一个参考点,通常取右节点,记为\(j\)我们考虑一个刚好符合题......
  • 自动驾驶-预瞄-Pure pursuit纯跟踪算法-MATLAB实现
    有空把引入、逻辑、原理介绍给写了,目前先给大家看看代码。将来写大概会分成这么几块:汽车运动学自行车模型跟踪算法主流模型及特点纯跟踪算法原理推导代码介绍代码原创,来之不易,请勿不注明转载。喜欢点个赞吧!网上许多代码都跑不起来hhclc;clear;%------------formroa......
  • 由数据范围反推算法复杂度以及算法内容
    由数据范围反推算法复杂度以及算法内容1、一般ACM或者笔试题的时间限制是1秒或2秒。C++里面如果题目的时间限制是1s的话,这个1s是指每一个测试数据都有1s的时间限制,如果一个题有十几个测试数据,每一个测试数据都有1s的实现,正常比赛的话,比如蓝桥杯比赛的话,如果有10个测试数据,时间......
  • AcWing算法提高课-1.1.1摘花生
    题目描述HelloKitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。HelloKitty只能向东或向南走,不能向西或向北......
  • JVM的垃圾收集算法
    介绍分代收集理论和几种垃圾收集算法的思想及其发展过程。分代收集理论当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(GenerationalCollection)的理论进行设计,分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,分代收集理论它建立在两个分代假说之上:弱......
  • python机器学习案例系列教程——K最近邻算法(KNN)、kd树
    全栈工程师开发手册(作者:栾鹏)python数据挖掘系列教程K最近邻简介K最近邻属于一种估值或分类算法,他的解释很容易。我们假设一个人的优秀成为设定为1、2、3、4、5、6、7、8、9、10数值表示,其中10表示最优秀,1表示最不优秀。我们都知道近朱者赤,近墨者黑,我们想看一个人是什么样的,看......
  • STAB算法
    SATB算法思想简介SATB算法的基本思想,可以概括为如下三句话:并发标记之前先给Region内存打个快照,标记线程基于这个快照独立进行标记。应用线程不会直接修改这个快照中的对象,也就是说应用线程不会干扰标记线程的工作。应用线程新分配的对象都认为是活跃对象,实际在下一个并发标记周......
  • JVM的垃圾收集算法
    介绍分代收集理论和几种垃圾收集算法的思想及其发展过程。分代收集理论当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(GenerationalCollection)的理论进行设计,分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,分代收集理论它建立在两个分代假说之上:......
  • m基于多核学习支持向量机MKLSVM的数据预测分类算法matlab仿真
    1.算法描述        20世纪60年代Vapnik等人提出了统计学习理论。基于该理论,于90年代给出了一种新的学习方法——支持向量机。该方法显著优点为根据结构风险最小化归纳准则,有效地避免了过学习、维数灾难和局部极小等传统机器学习中存在的弊端,且在小样本情况下仍然具有......