小孩都看得懂的聚类

640?wx_fmt=jpeg

全文共  1448  字, 45  幅图,
预计阅读时间  8  分钟。

本文是「小孩都看得懂」系列的第四篇,本系列的特点是没有公式没有代码只有图画只有故事。内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!

  1. 小孩都看得懂的逐步提升

  2. 小孩都看得懂的聚类

本文所有思路都来自 Luis Serrano 的油管视屏「Clustering: K-means and Hierarchical」,纯纯的致敬!我只是加了点场景使得内容更通俗点。

聚类是无监督学习中的最常见的方法,本帖介绍两种聚类方法:

  1. K 均值聚类 (K-Means Clustering), 1-3 节

  2. 层次聚类 (Hierarchical Clustering), 4-6 节

1

新加坡唐人街 (Chinatown) 开了家王大爷烧烤,店里每天生意不错,而且还有很多人叫外卖。

今天,店里收到很多外卖单子,如下图灰点所示,那么王大爷应该派多少个外卖员去送货呢?

直观来说,应该派 3 名送外卖的,每个人负责一区,如下图区所示。

那么这三个区是怎么聚类出来的呢?

2

方法太简单了,首先随机选三个点作为簇心 (centroid),如下图色五角星。为什么选三个下节解释,先接受它。

对每个灰点,计算它们到三个簇心的距离,离什么颜色簇心最近,就涂成什么颜色。

第一次「聚类」过程完毕,如下图。

根据最新聚类结果重新计算它们的簇心,如下图。

问题来了,有三个蓝点明显离黄色簇心更近呢。怎么办呢?把它们变成黄色呗。

同理,对下图两个红点

根据最新聚类结果重新计算它们的簇心,如下图。

再继续更正聚类错误的点。

根据最新聚类结果重新计算它们的簇心,直到没有任何聚类错误的点,如下图。

聚类完毕,一个值得思考的问题是到底需要多少个簇 (cluster) 呢?用肘部法则 (elbow method)。

3

实现我们是不知道有多少个簇心的,那就试着穷举几个,比如 1 到 6 个。按照上节的思路,做 6 次聚类过程直到收敛,如下图。

  • 1 个簇心不需要任何聚类

    ...

  • 3 个簇心是上节结果

    ...

  • 6 个簇心聚成 6 组

极限情况,我们有 22 个点,如果设 22 个簇心,那么每个点都被涂成不同颜色,但这样毫无意义。

在每种情况下,计算同一簇内两点间距离最大值

距离值 (y) 和簇心个数 (x) 画图,连线,找到一个类似胳膊肘的点,就选对应的簇心个数,解释在图中写出了。

4

K 均值聚类讲完了,接下来看看层次聚类。这次数据用少点,因为画着太累 2_05.png

5

层次聚类的规则不要太简单,每次找到距离最近的两个点,聚成一组,再重复直到。。。

640?wx_fmt=png

直到两点距离太远了!!!这都能聚成一组真有点说不过去了,停了!

层次聚类完毕,一个值得思考的问题是如何决定两点之间距离「过大」而停止继续聚类呢?用树形图 (dendrogram)。

6

将数据点编号,作为树形图的横轴刻度,而纵轴是距离值,如下图所示。

按照上节的规则,找到找到距离最近的两个点,聚成一组。记下这两点的标号,在树形图上画出其距离 (红色半圈)。

不停的这样做,知道把所有数据聚成一组

画完树形图后,我们可以根据「不希望两点距离超过 d」来对其裁剪,如下图。这样我们得到上节的结果,把数据聚成两类。

此外,我们还可以根据「希望聚成 4 类」来对其裁剪,如下图。

小结

K 均值聚类层级聚类都非常简单,而确定它们聚类的停止条件,分别是肘部法则树形图也很直观。不管数据有多少维,肘部法则树形图永远是二维图。

聚类方法的应用也特别多,比如多因子投资中聚类数目繁多的因子,胶囊网络里面也有 K 均值聚类的影子等等。

这次你看懂了么?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值