吴恩达机器学习 笔记八 K-means聚类算法

1. 代价函数

  K-means算法是比较容易理解的,它属于无监督学习方法,所以训练样本数据不再含有标签。我们假设有样本数据 x(1),x(2),,x(m) x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) ,我们选择设置 K K 个聚类中心u1,u2,,uK,K-means算法的代价函数表达式如下

J(c(1),c(2),,c(m),u1,u2,,uK)=1mi=1m||x(i)uc(i)||2 J ( c ( 1 ) , c ( 2 ) , ⋯ , c ( m ) , u 1 , u 2 , ⋯ , u K ) = 1 m ∑ i = 1 m | | x ( i ) − u c ( i ) | | 2
其中 c(i)[1,K] c ( i ) ∈ [ 1 , K ] 表示距离 x(i) x ( i ) 最近的聚类中心。

2. 具体算法

  K-means算法的具体流程如下:

Repeat {

for i = 1 to m

c(i) := index (form 1 to K) of cluster centroid closest to x(i)

for k = 1 to K

μk := average (mean) of points assigned to cluster k

}

其中,第一个循环用于更新每个样本距离最近的聚类中心,第二个循环用于更新聚类中心所处的位置

3. 随机初始化

  通常我们会随机选取 K K 个样本数据作为初始聚类中心,但是这样可能得到一个局部最小点。其中一个解决方法是,

多次运行K-均值算法,每一次都重新进行随机初始化,最后再比较多次运行K-均值的结果,选择代价函数最小的结果。

但是,这种方法在K[2,10],即 K K 较小的时候还是可行的,但是如果较大,这么做也可能不会有明显地改善。

4.聚类数的选取

  绝大多数是需要根据数据人工选取的。肘图的方法可能有所帮助,比如得到左侧结果的时候,我们就可以选择肘的位置的K作为聚类数。但肘图不一定可行,比如得到图中右侧结果的时候。
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值