机器学习11 聚类

13 聚类

内容:
无监督学习
K-均值算法
优化目标
随机初始化
选择聚类数

13.1 无监督学习

  1. 与监督学习区别:监督学习数据有标签(就是你知道它是属于哪一类);无监督学习数据没有标签(你不知道这些数据分别属于哪一类或者可以分成哪几类,需要通过学习自己判断)
  2. 聚类算法:能够将这些数据分成几类的算法。他是非监督学习算法的其中一种

13.2 K-均值算法

  1. 特点:算法接受一份未标记的数据集,然后将数据聚类成不同的组。这是一个迭代算法。
  2. 聚类中心:随机选择K个随机的点。
  3. 算法步骤:



    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
    }
    算法分为两个步骤,第一个 for 循环是赋值步骤,即:对于每一个样例𝑖,计算其应该属于的类。第二个 for 循环是聚类中心的移动,即:对于每一个类𝐾,重新计算该类的质心。

  4. 例子


  5. 应用
    可以很便利地用于将数据分为许多不同组,即使在没有非常明显区分的组群的情况下也可以。

    下图所示的数据集包含身高和体重两项特征构成的,利用 K-均值算法将数据分为三类,用于帮助确定将要生产的 T-恤衫的三种尺寸。

13.3 优化目标

  1. 代价函数(畸变函数)




    回顾刚才给出的:K-均值迭代算法,第一个循环是用于减小𝑐(𝑖)引起的代价,而第二个循环则是用于减小𝜇𝑖引起的代价。迭代的过程一定会是每一次迭代都在减小代价函数。

13.4 随机初始化

介绍如何随机初始化K个聚类中心点(此时假设我们已经知道K应该取多少,目的是初始化这几个点的位置)

  1. 我们应该选择𝐾 < 𝑚,即聚类中心点的个数要小于所有训练集实例的数量
  2. 随机选择𝐾个训练实例,然后令𝐾个聚类中心分别与这𝐾个训练实例相等

然而仍然存在下图的问题



它有可能会停留在一个局部最小值处,而这取决于初始化的情况。
解决方法:多次运行 K-均值算法,每一次都重新进行随机初始化,最后再比较多次运行 K-均值的结果,选择代价函数最小的结果。
缺点:在𝐾较小的时候(2~10)还是可行的,但是如果𝐾较大,这么做也可能不会有明显地改善。

13.5 选择聚类数

  1. 肘部法则

    原理:改变𝐾值,也就是聚类类别数目的总数,每次计算畸变函数J,得到K与J的图像。

    比如左图,在K = 3的位置想一个人的肘部,那么使用三个聚类来进行操作时正确的。

    然而也会出现右图的情况,观察不到“肘部”

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.无监督学习:简介 聚类算法:第一个无监督学习算法(无标签的数据) 什么是无监督学习呢?对比:监督学习问题指的是...
    带刺的小花_ea97阅读 12,882评论 0 5
  • 第一百零八课:无监督学习 聚类算法:第一个无监督学习算法(无标签的数据)什么是无监督学习呢?对比:监督学习问题指的...
    带刺的小花_ea97阅读 831评论 0 3
  • 聚类算法 前面介绍的集中算法都是属于有监督机器学习方法,这章和前面不同,介绍无监督学习算法,也就是聚类算法。在无监...
    飘涯阅读 41,542评论 3 51
  • 该系列文章为,观看“吴恩达机器学习”系列视频的学习笔记。虽然每个视频都很简单,但不得不说每一句都非常的简洁扼要,浅...
    tomas家的小拨浪鼓阅读 956评论 0 5
  • 这几天看到腾讯上面推出的关于陕西愉林产妇跳楼的新闻,引发了广泛的热议。即将做妈妈以及已经做妈妈的女人们,对...
    暖暖地阅读 744评论 0 1