zoukankan      html  css  js  c++  java
  • Ng第十三课:聚类(Clustering)

    13.1  无监督学习:简介    

    13.2 K-均值算法    

    13.3  优化目标    

    13.4  随机初始化    

    13.5  选择聚类数  


     13.1  无监督学习:简介

    在这个视频中,将开始介绍聚类算法。这将是一个激动人心的时刻,因为这是到现在学习的第一个非监督学习算法,要让计算机学习无标签数据,而不是此前的标签数据。

    之前简单介绍过非监督学习,有必要将其与监督学习做一下比较。

    在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签,我们需要据此拟合一个假设函数。与此不同的是,在非监督学习中,我们的数据没有附带任何标签,我们拿到的 数据就是这样的:

    这里有一系列点,却没有标签。因此,我们的训练集可以写成只有 x(1),x(2)…..一直 到 x(m),没有任何标签 y。因此,图上画的这些点没有标签信息。也就是说,在非监督学习中,我们需要将一系列无标签的训练数据,输入到一个算法中,然后我们告诉这个算法, 快去为我们找找这个数据的内在结构给定数据。图上的数据看起来可以分成两个分开的点集(称为簇),一个能够找到圈出的这些点集的算法,就被称为聚类算法。

    这是介绍的第一个非监督学习算法。当然,此后我们还将提到其他类型的非监督学习算法,它们可以找到其他类型的结构或者其他的一些模式,而不只是簇。

     

     


     13.2 K-均值算法

    K-均值是最普及的聚类算法,算法接受一个未标记的数据集,然后将数据聚类成不同的组。

    K-均值是一个迭代算法,假设我们想要将数据聚类成 n 个组,其方法为:

    1.首先选择 K 个随机的点,称为聚类中心(cluster centroids);

    2.对于数据集中的每一个数据,按照距离 K 个中心点的距离,将其与距离最近的中心点关联起来,与同一个中心点关联的所有点聚成一类。

    3.计算每一个组的平均值

    4.将该组所关联的中心点移动到平均值的位置。

    重复步骤 2-4 直至中心点不再变化。

    下面是一个聚类示例:

    算法分为两个步骤,第一个 for 循环是赋值步骤,即:对于每一个样例 i,计算其应该属 于的类。第二个 for 循环是聚类中心的移动,即:对于每一个类 k,重新计算该类的质心。 

    K-均值算法也可以很便利地用于将数据分为许多不同组,即使在没有非常明显区分的组 群的情况下也可以。下图所示的数据集包含身高和体重两项特征构成的,利用 K-均值算法将

    数据分为三类,用于帮助确定将要生产的 T-恤衫的三种尺寸。


    13.3  优化目标

    使代价函数最小化


    13.4  随机初始化

    在运行 K-均值算法的之前,首先要随机初始化所有的聚类中心点,下面介绍怎样 做:

    1. 我们应该选择 K<m,即聚类中心点的个数要小于所有训练集实例的数量

    2. 随机选择 K 个训练实例,然后令 K 个聚类中心分别与这 K 个训练实例相等

    K-均值的一个问题在于,它有可能会停留在一个局部最小值处,而这取决于初始化的情 况。


      13.5  选择聚类数

    肘部法则

  • 相关阅读:
    02-09 对数线性回归(波士顿房价预测)
    02-02 感知机原始形式(鸢尾花分类)
    02-19 k近邻算法(鸢尾花分类)
    02-21 决策树ID3算法
    A-02 梯度下降法
    09-01 Tensorflow1基本使用
    02-34 非线性支持向量机(鸢尾花分类)+自定义数据分类
    [Python]网络爬虫(四):Opener与Handler的介绍和实例应用(转)
    Eclipse+PyDev 安装和配置(转)
    [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容(转)
  • 原文地址:https://www.cnblogs.com/Real-Ying/p/6845832.html
Copyright © 2011-2022 走看看