【K_Means聚类】吴恩达机器学习(13)

一、算法原理

在这里插入图片描述
随机生成聚类中心,选取两个点是因为想把数据分成两类

KMeans算法是一个迭代算法
每次迭代他会做两件事:

  • 簇分配(cluster assignment )
    每次内循环的第一步就是簇分配,也就是遍历每个样本点,根据每一个点与红色聚类中心更近还是蓝色聚类中心更近来将每个样本点划分到某个聚类中心。

在这里插入图片描述

  • 移动聚类中心(move centroid)
    内循环的第二步就是移动聚类中心
    将两个聚类中心将其移动到相同颜色点的均值处。

在这里插入图片描述
当继续运行迭代但是聚类中心不会再移动时,Kmeans算法已经聚合。用KMeans进行二分类效果很好。

在这里插入图片描述

parameters:

  • 想要的簇的个数K(寻求最优参数K)
  • 一系列无标签的只用x来表示的数据集

在这里插入图片描述

KMeans算法可以解决分离不佳的簇的问题
在这里插入图片描述

二、KMeans算法的优化函数

方便调参,帮助我们找到最优的K值,避免局部最优解。

代价函数:
在这里插入图片描述
这个代价函数有时也叫失真代价函数K均值算法的失真

在这里插入图片描述

三、KMeans算法的初始化:如何使算法避开局部最优

在这里插入图片描述

根据初始化聚类中心的不同,两个算法可能会收敛到到不同的结果

在这里插入图片描述

可以尝试多次随机初始化:
在这里插入图片描述
如果簇的数量K在2-10之间,进行50-1000次的随机初始化可以保证收敛到较好的局部最优解,能找到较好的聚类

如果是要找到100多个聚类,多次随机初始化并不能保证收敛到一个较好结果

四、如何选择KMeans算法的K值

这个问题没有自动处理的办法
确定聚类数量最常用的方法还是观察可视化的图观察聚类算法的输出

如果面对的数据不是二维数据,大于3维不好可视化怎么办?

在这里插入图片描述
无监督学习没有标签,没有确定的答案
用一个自动化的办法来选择一个合适的聚类数量比较困难

人们选择K值时,通常会用到 “肘部法则”

在这里插入图片描述
左图是肘部法则适用的情况
右图没有明显的肘部,此时不适用

图像压缩的KMeans算法编程习题是一个较好的应用下游目的来确定K值的例子。
想要图片质量更好?
想要图片体积更小?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

verse_armour

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值