聚类方法及实现(K-means)

K均值聚类是一种常见的无监督学习算法,用于将样本根据相似性划分到不同类别。该算法基于样本集合划分,迭代地更新类别中心直至收敛。聚类分为硬聚类和软聚类,K均值属于前者。K值的选择对结果有显著影响,可通过尝试不同K值并评估平均直径来确定最优值。在实例中,KMeans成功应用于美国俄勒冈州波兰特地区的旅游景点聚类,展示其在地理数据分析中的应用。
摘要由CSDN通过智能技术生成

算法思想

聚类是针对给定的样本,依据它们特征的相似度或距离,将其归并到若干个类或簇的数据分析问题。聚类属于无监督学习,因为只是根据样本的相似度或距离将其进行归并,而类或簇实现不知道。聚类算法有很多,这里主要介绍K均值聚类(K-means)。

聚类的分类

通过聚类得到的簇或类,本质是样本的子集。如果一个聚类方法假定一个样本只能属于一个类,那么该方法称为硬聚类,如果一个样本可以属于多个类,那么该方法称为软聚类。

K均值聚类

K均值聚类是基于样本集合划分的聚类算法,K均值聚类将样本集合划分为K个子集,构成K个类,将n个样本分到K个类中,每个样本到其所属类的中心的距离最小。K均值聚类的算法是一个迭代的过程,具体过程如下:

  1. 首先,随机确定K个初始点作为质心。
  2. 为数据集中的每个点寻找距其最近的质心
  3. 将其分配给改质心所对应的簇
  4. 然后计算每个簇中所有点的均值,作为类的新的中心;
  5. 重复以上步骤,直到收敛为止。

距离的度量

点与点之间的距离通常选择欧氏距离,当然也可以选用闵可夫斯基距离或马哈拉诺比斯距离。

K值的选取

K均值聚类中的类别数K值需要预先指定,而在实际应用中最优的K值是不知道的。解决这个问题的一个方法是尝试用不同的K值聚类,检验各自得到聚类结果的质量,推测最优的K值。聚类结果的质量可以用类的平均直径来衡量。一般地,类别数变小时,平均直径会增加;类别数变大超过某个值以后,评价直径会不变;而这个值正是最优的K值。实验时,可以使用二分查找,迅速找到最优的K值。

实现

利用KMeans算法解决了对地图上的点进行聚类的问题(在美国俄勒冈州波兰特地区有70个旅游景点,先需要决定一个将这些地方进行聚类的最佳策略,以便于安排交通工具抵达这些地点的中心,然后步行到每个景点)。实验结果表明,使用KMeans算法可以获得较好的聚类结果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

(1)K均值聚类是常用的聚类算法,有以下特点:基于划分的聚类方法;以欧氏距离平方表示样本之间的距离,以中心或样本的均值表示类别;以样本和其所属类的中心之间的距离的总和为最优化的目标函数;得到的类别是平坦的、非层次化的;
(2)K均值聚类属于启发性方法,不能保证收敛到全局最优,初始中心的选择会直接影响聚类的结果。
(3)选择不同的初始中心,会得到不同的聚类结果。
(4)K均值聚类中的类别数K值需要预先指定,而在实际应用中最优的K值是不知道的。解决这个问题的一个方法是尝试用不同的K值聚类,检验各自得到聚类结果的质量,推测最优的K值。聚类结果的质量可以用类的平均直径来衡量。一般地,类别数变小时,平均直径会增加;类别数变大超过某个值以后,评价直径会不变;而这个值正是最优的K值。实验时,可以使用二分查找,迅速找到最优的K值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值