K-均值聚类算法的原理与实现

K-均值聚类算法的原理与实现

聚类是一种无监督的学习,它将相似的对象归到同一个簇中,聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好,本文主要介绍K-均值聚类的算法,之所以称之为K-均值是因为它可以发现k个不同的簇,并且每个簇的中心采用簇中所含的值的均值计算而成

K-均值聚类算法

  • 优点:容易实现。
  • 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢
  • 适用数据类型:数据型数据

k-均值是发现给定数据集的k个簇的算法,簇个数是由用户给定的,每一个簇通过质心(centroid),即簇中所有店的中心来描述。
k-均值算法的工作流程是这样的,首先,随机确定k个初始点作为质心。然后将数据集中的每个点分配到一个簇中,具体来说,为每个点找其最近的质心,并将其分配给质心所对应的簇,这一步完成后,每个簇的质心更新为该簇所有点的平均值。

上述过程的伪代码表示如下:

创建k个作为起始质心(通常是随机选择)
当任意一个点的簇分配结果发生改变时
    对数据集中的每个数据点
        对每个质心
            计算质心与数据点之间的距离
        将数据点分配到距离其最近的簇
    对每一个簇,计算簇中所有点的均值并将均值作为质心

k-均值聚类的一般流程

  1. 收集数据:使用任意方法
  2. 准备数据:需要数据型数据来计算距离,也可以将标称型数据映射为二值型数据再用于距离计算。
  3. 分析数据:使用任意方法。
  4. 训练算法:不适用于无监督学习,即无监督学习没有训练过程。
  5. 测试算法:应用聚类算法,观察结果。可以使用量化的误差指标如误差平方和来评价算法的结果。
  6. 使用算法:可以用于所希望的任何应用,通常情况下,簇质心可以代表整个簇的数据来做出决策

上面提到的“最近”质心的说法,意味着需要进行某种距离计算,可以选择任意距离度量方法。这里我们选择利用欧式距离进行度量。数据集上的k-均值算法的性能会受到所选距离计算方法的影响。下面给出k-均值算法的代码实现,首先创建一个名为kMeans.py

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值