K-means

任务

  1. 数据: m 个样本,x(i)是n维的向量,{ x(1),...,x(m) }
  2. 目标聚类

算法

  1. 随机初始化 k 个聚类中心 μ1,..μk,(对结果还是很有影响的,后面会采取一些措施弥补这种影响)。
    • 对于每个样本, do:
      c(i):=argminj||x(i)μj||
    • 对于每个聚类中心, do:
      μj:=mi=11{c(i)==j}x(i)mi=11{c(i)==j}
    • 重复第二第三步,类别标签不再改变为止。

解析

算法的主要就是在完成两个步骤,
第一,不断的计算样本与聚类中心的距离,为当前每个样本进行分类
第二,根据新的样本,更新聚类中心。


收敛性的判断,评价的方法可以样本点到自己聚类中心距离的和(可以说明一定会收敛,函数值通过交替更新,一定是不断减小的,类似于EM思想,但是不一定是全局最优)

J(c,μ)=i=1m||x(i)μc(i)||


建议

  1. 实际运行过程中,运行多次,选取其中较好的一个,一般都会取得不错的效果(该算法的强大之处,很多时候是非常work的)。
  2. 在实际聚类过程中,聚类数目还是很难确定的,可以采取一些已有算法,分析得到其大致取值。
  3. 对于大样本,可能计算复杂度较高,需要做一些计算优化,但是基本思想很重要。
  4. 计算距离也有很多方法,实际工作时候,可能需要尝试不同的距离公式。

来源于CS229

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值