K-means聚类算法

K-means是一种无监督学习中的聚类算法,用于将数据集分成k个簇。算法涉及选择初始聚类中心,然后迭代地分配数据点并更新中心,直到收敛。其优点包括易于实现和广泛适用,但存在收敛到局部最小值和处理大规模数据集速度慢的问题。通过优化初始中心的选择和多次运行可以提高结果质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

K-means聚类算法

  • K-means简介

    K-means是无监督学习中的一种聚类算法,输入是无标签的数据集,输出的是k个不同的簇,以及数据集中每个测试样例的分类。聚类有时也被称为无监督分类。
    优点:易于实现,适用范围广
    缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢

  • K-means原理&算法
    原理
      目标函数
    这里给出K-means的目标函数,其中J是目标函数,数据为xi(i从1到m),聚簇中心为ui(i从1到k),ci等于离xi距离最近的聚簇中心的下标,也就是xi的分类。上式可见,有两组变量需要优化,一个是c,一个是u,K-means采用固定u,优化c,固定c优化u的方式,循环分开优化,直到收敛。通过这种方法优化c和u的时候,目标函数J只会减少,不会增加,所以出现J增加的时候有可能是代码出现了问题。
    算法

    1. 接受输入两个参数聚类的个数k,数据集x(x1,x2,…xm)
    2. 随机初始化k个聚簇中心,u1,u2,…uk
    3. 重复以下两个步骤,直到聚簇中心不发生变化
    4. 聚簇分配步骤,i从1到m,给xi标上标签,标签是离他们最近的某个聚簇中心uj
    5. 更新聚簇中心步骤,i从1到k,更新ui的坐标为所有被分到ui这个标签的数据的坐标均值
  • K-means优化

    1. 从x1~xm一共m个数据中选择k个作为聚簇的中心点,而不是随机生成k个
    2. 多次运行K-menas算法,由于每次初始化不同,而初始化又对收敛影响很大,所以能够选取一个较优的局部最优点甚至全局最优
  • K-means for non-separ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值