吴恩达机器学习笔记——无监督学习与K-means

本文深入探讨了K-means算法的工作原理,包括随机初始化聚类中心、簇分配、聚类中心移动等关键步骤。介绍了如何通过代价函数最小化实现聚类优化,以及如何避免局部最优解,选择合适的K值。

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


K-meas 算法概述


随机生成K个点,称为聚类中心。K-means算法实际上是一个迭代算法,他有两步动作。在算法的最开始,随机初始化K个聚类中心,坐标位置分别为u_{i}。第一步是簇分配,第二步是移动聚类中心。遍历图中的每一个点,判断点跟哪个聚类中心的距离更近,进而划分到这个聚类中心名下,并将聚类中心的下标赋给对应样本点x^{(i)}c^{(i)},这个步骤其实也是代价函数的最小化过程。然后对所有c^{(i)}=k的样本点向量求平均值(忽略x^{(0)})将聚类中心移动到同类点的均值处。重复以上过程,直到各个聚类中心已经不再移动了。如果有一个没有点的聚类中心,则一般做法是移除之。如果仍需保留K个簇,则可以重新随机初始化这一没有点的聚类中心。

K平均算法可以将一堆数据分类为K组,这类似于市场划分,可以应用到产品型号生产中去。


K-meas 算法代价函数


注意,u_{c^{(i)}}x^{(i)}代表的簇的聚类中心所在的坐标位置。K平均算法是根据代价函数找到使得其最小的c和u。这个代价函数的每次变动也叫失真。J也称为失真函数。第一步是u不变,找到使得失真函数最小的c。第二部c不变,找到使得失真函数最小的u。


避免局部最优


在算法的一开始,我们需要随机初始化聚类中心的位置。

最好的办法是从训练样本中随机挑选K个点,作为u1...uk。

然而,K平均算法可能收敛到不同的结果,这取决于初始化时聚类状态。我们可以尝试多次随机初始化,运行K算法,计算畸变函数J。最后我们选取畸变值最小,也就是代价最小的。

当K较小,即约为2-10时,多次随机初始化效果较好。否则可能虽然有改善,但第一次的值已经相对不错,后面的改善较小。


K值的选择


  • “肘部”原则。
  • 通过使用价值人工指定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值