kmeans聚类算法和k-medoids聚类算法 matlab代码

本文介绍了K-means和K-medoids两种聚类算法的原理和区别。K-means通过距离衡量对象相似性,随机选择初始聚类中心,不断迭代直至中心点稳定。而K-medoids则选择簇内代表点作为中心,使得簇内其他点到它的总距离最小。这两种算法在数据挖掘中广泛应用,适用于不同场景。链接提供了相关代码实现。
摘要由CSDN通过智能技术生成

一、kmeans聚类算法

(1) kmeans简介
K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。
k个初始类聚类中心点的选取对聚类结果具有较大的影响,因为在该算法第一步中是随机的选取任意k个对象作为初始聚类的中心,初始地代表一个簇。该算法在每次迭代中对数据集中剩余的每个对象,根据其与各个簇中心的距离将每个对象重新赋给最近的簇。当考察完所有数据对象后,一次迭代运算完成,新的聚类中心被计算出来。如果在一次迭代前后,J的值没有发生变化,说明算法已经收敛。
(2)算法过程如下
1.计算欧氏距离
2.随机选取k个初始聚类中心点
3.更新簇的中心点
4.迭代,直到收敛
通常停止迭代的条件:为中心点不变。

二、k-medoids聚类算法

     k-medoids 算法与K-means算法步骤是一致的,区别在于中心点的选取,在 k-medoids 算法中,我们将从当前 cluster 中选取这样一个点——它到其他所有(当前 cluster 中的)点的距离之和最小——作为中心点。

三、效果

 四、代码

https://download.csdn.net/download/weixin_41971010/20639023

模糊C均值聚类(Fuzzy C-means clustering), K-means 和 K-medoids 都是常见的聚类算法。它们的目标都是将数据集划分成不同的簇,但是在具体实现和结果输出上有所不同。 K-means 是一种迭代的聚类算法,它将数据集划分成 K 个簇。算法的步骤包括随机初始化 K 个聚类中心,然后通过计算每个数据点与聚类中心的距离来将数据点分配给最近的簇。接着,根据簇中的数据点重新计算聚类中心,并重复这个过程直到满足停止准则(例如,簇中心不再改变或者达到最大迭代次数)。K-means 算法使用欧氏距离作为距离度量,适用于数据点之间的明确分类。 K-medoids 是 K-means 的一种变体,它使用了中心点(medoid)作为簇中的代表点,而不是简单地使用聚类中心。中心点是实际数据点的成员,而不是聚类中心所在的位置。K-medoids 的优势在于对于存在离群点或异常点的数据集有更好的鲁棒性。与 K-means 类似,K-medoids 也是通过迭代的方式来划分簇。 模糊C均值聚类是一种基于模糊理论的聚类算法,与 K-means 不同的是,它允许一个数据点属于多个簇,而不是强制进行明确的分类。模糊C均值聚类通过计算每个数据点与每个簇的隶属度(一个介于 0 到 1 之间的值)来表示数据点与簇的关系。迭代过程中,算法调整数据点的隶属度和聚类中心,直到满足停止准则。 总结起来,K-means 是一种硬聚类算法,K-medoids 是 K-means 的一种变体,而模糊C均值聚类是一种软聚类算法。它们在实现细节和结果输出上有所不同,适用于不同类型的数据集和应用场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是好人的墨叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值