Stanford 机器学习笔记 Week8 Unsupervised Learning

本文详细介绍了K-Means聚类算法的工作原理及步骤,包括如何选择初始聚类中心、避免局部最优解的策略以及如何确定合适的聚类数量。此外还探讨了算法的目标优化函数及其图形表现。

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

Clustering

K-Means Algorithm

一种经典的聚类算法,步骤很简单,分4步:

1.首先随机选择K个聚类中心
2.对于Training Set中的每个点i,计算离i最近的中心c(i),将该点标记为c(i)
3.对于每个中心k,重新计算该位置为:所有标记为k的点的平均位置
4.如果所有中心的位置都不变,算法结束。否则回到步骤2

当在第2步时发现对于某中心没有属于的点,可以直接将该中心删除。如果必须维持K个中心的话,则可以重新随机选择该中心位置。

K-Means同样可以解决分离不明显的training set:
这里写图片描述
如右图所示。

Optimization Objective

之前的每个算法都有一个用来实施优化的公式(比如cost function),K-Means同样有,它的形式是:
这里写图片描述
这个函数又被称为distortion function。

如果画一个图像,x轴是k-means算法循环设置新中心的次数,y轴是J函数的值。如果k-means算法编写正确的话,这个图像应该是单调递减的。

Random Initialization

一种比较好的初始化方法是把初始的K个中心设置为随机K个不同的training set中的点。

但是当初始化的情况很差时,可能会陷入一个比较差的局部最优解,如图:
这里写图片描述
下面两个图就是陷入了局部最优解。

解决办法就是多次随机初始化,执行k-means后纪录distortion函数。
最终选择distortion函数值最小的分类方法作为答案。

Choosing the Number of Clusters

一种动态选择K值大小的方法是elbow method:
画出图像,x轴为K值大小,y轴为distortion值,这个值一定是单调递减的,如图:
这里写图片描述

如果图像是左边这种情况,那么K=3那个位置就很像一个elbow,这个位置就是最佳的K值。
但是如果是右边图像的情况就不能明确的找出elbow,因此这不是一个能应用于所有情况的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值