聚类-机器学习(machine learning)笔记(Andrew Ng)

聚类

无监督学习介绍

在无监督学习中,我们的数据不带有任何标签(y值):
这里写图片描述

我们希望通过这些不带标签的输入,找到一些隐含在数据中的结构。比如上图,我们可以找到两组分开的点集(簇)。这种能找到这些簇的方法我们称之为聚类算法。

聚类的作用

这里写图片描述

k-means

最热门最为广泛运用的聚类算法。

定义
我们使用图像来说明k-means:
这里写图片描述
首先我们先找两(k=2)个点作为聚类中心,目的是为了将样本划分成两类。
迭代算法:

  • 簇分配

计算每个绿点与两个聚类中心的距离,然后进行分配
这里写图片描述

  • 移动聚类中心

我们分别计算蓝色样本的均值和红色样本的均值作为新一轮迭代的聚类中心
这里写图片描述

最终,我们会得到如下图的结果,并且再进行迭代聚类中心也不会变:
这里写图片描述

算法内容
k-means算法接受两个输入:

  • k(簇的数量)
  • 训练集

算法过程:
这里写图片描述

第一步随机初始化k个聚类中心。第一个for循环进行簇分配,第二个for循环计算新的聚类中心。
如果存在没有点分配的聚类中心,最简单的方法是移除那个聚类中心。否则的话,可以选择重新初始化这个聚类中心。

优化目标

先介绍几个变量:

  • c(i) c ( i ) :样本 x(i) x ( i ) 的簇索引
  • μk μ k :第k个聚类中心
  • μc(i) μ c ( i ) :样本 x(i) x ( i ) 被分配到的聚类中心

优化目标:
这里写图片描述

Σ Σ 后面的东西表示的是每个样本和他所分配到的聚类中心之间的距离。

我们可以用优化函数J来调试K-means算法,帮助证明k-means算法是收敛的并且能正常运行。

如何初始化k-means及避开局部最优

介绍一种方法:
理所当然我们应该取K < m。首先,随机取K个训练样本,设置 μ1...μK μ 1 . . . μ K 为这K个样本的位置。

局部最优
这里写图片描述
如果优化的好,那么可以达到上图中右上角的图的局部最优,同时也是全局最优。如果不好,则会陷入另外两张图的局部最优。
这里写图片描述
我们要做得是从这100种结果中选择具有最小代价函数的簇。事实证明,当k较小时,这种方法能够得到全局最优。

选取聚类数量

在无监督学习中,数据没有标签,所以并不总是有一个明确的答案告诉你有多少分类。因此,使用自动化的方法来选择簇的个数是非常困难的。

肘部法则
有一种选择聚类个数的方法叫做“肘部法则”:
这里写图片描述
我们改变K的大小,从1开始,可以发现在K=3的时候经历了一个转折,就像人的“肘部”一样。我们选取K=3作为最终的聚类个数选择。
但是并不是每次都能得到上述的图的,当遇到下面这种情况的时候,使用肘部法则选择就变的困难了。
这里写图片描述

另一种方法是:选择K的时候看哪个聚类数量能更好的应用于后续目的。比如市场划分,选择制定T恤的大小。我们可以选择3种T恤s m l或者5种T恤xs s m l xl。
这里写图片描述
这时候要问问自己运行k-means聚类的目的是什么。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值