第十三章-聚类之K-means算法 深度之眼_吴恩达机器学习作业训练营

目录

一,聚类问题

1.1 监督与无监督

1.2 聚类简介

二,K-均值算法

2.1 算法内容

2.2 优化目标

三,应用细节

3.1 K值的选取

3.2 随机初始化

3.3 距离的度量

四,总结


一,聚类问题

1.1 监督与无监督

在监督学习中,给定的数据样本都含有特征与标签,学习算法根据数据特征来进行预测,再根据预测结果与标签之间的关系建立损失函数,最后再训练模型。
而在无监督学习中,给定的数据样本只有特征,没有标签。学习算法要根据数据特征之间内在的“相似性”给样本定义标签。
相比较与监督学习,无监督学习更有应用意义,因为现实中许多问题都只能采集特征而不能准确的定义标签。常见的无监督学习应用有聚类问题以及降维问题。

1.2 聚类简介

输入一系列只有特征的数据样本,根据数据特征之间的“相似性”将样本划分为一系列的点集(也称为簇),达到“物以类聚”的效果。此类算法运用范围很广,具体应用有:

第十三章-聚类之K-means算法 深度之眼_吴恩达机器学习作业训练营_第1张图片 图13-1 聚类算法应用实例(图来自吴恩达机器学习课程,侵删)
  1.   市斜体样式场分割(Market of clustering),根据客户信息将客户划分为不同的群体,可以进行精准的推荐产品和提供服务。
  2. 社交网络分析(Social network analysis),根据社交信息划分关系密切的人群。
  3. 计算机集群管理(Organize computing clusters) ,根据计算机集群的运行状态,组织计算机协同工作,重新分配资源,布局网络。
  4. 天文数据分析(Astronomical data analysis),根据天文数据划分星系群。
  5.  等等。

二,K-均值算法

2.1 算法内容

K -均值(K-means)** 算法是一个聚类算法, 假设有m个样本,每个样本有n个特征,其核心思想如下:

  1. 假设数据共需分为K类,随机在n维特征空间中生成k个类别中心,一个类别中心代表一个类。
  2. 按照指定的距离度量方案,对m个样本分别与k个样本中心计算其距离,将每个样本划分到与其距离最近的样本中心所代表的类别中。
  3. 计算每个类别中所有样本的特征平均值,将样本中心移动到特征平均值所在的位置。
  4. 反复执行步骤2,3,直到样本中心的位置不发生改变,即各个类别中的样本不发生变化为止。
第十三章-聚类之K-means算法 深度之眼_吴恩达机器学习作业训练营_第2张图片 图13-2 K-means 算法举例(图来自网络,侵删)

2.2 优化目标

设m个样本为:(x^{1}, x^{2}, ......, x^{m} ),其 K个类别中心为:(u_{1}, u_{2}, ......, u_{k} )第i个样本与其所属的类别为 (x^{i} , u_{c^{i}} )。假设以欧氏距离为度量,K-means算法的损失函数(也称为畸变函数(Distortion function))可表示如下:

                            J(c^{(1)},......,c^{(m)},u_{1},......,u_{k} ) = \frac {1} {m} \sum _{i=1}^{m}\left \| x^{i} - u_{c^{i}}\right \|^2               (公式 13.1)

看上去有些奇怪的原因是该算法中需要学习的参数是样本类别(u_{1}, u_{2}, ......, u_{k} ),以及样本x^{i}所对应的类别u_{c^{i}}。回顾上述K-means算法主体,算法步骤2其实就意味着调整参数 u_{c^{i}} 来最小化代价函数,而算法步骤3即表示调整类别中心(u_{1}, u_{2}, ......, u_{k} )来最小化代价函数。

所以K-means算法在训练的同时,也在最小化其损失函数。

三,应用细节

3.1 K值的选取

K-means算法有个很重要的超参数,便是具体的类别数K。K值的具体选取一般可根据应用需要来决定,对于具体问题没有所谓最好的选取法。

第十三章-聚类之K-means算法 深度之眼_吴恩达机器学习作业训练营_第3张图片 图13-3 肘部法则

这里介绍有一种称之为“肘部法则(Elbow method)”的选取方法,即选取不同的K值进行计算训练后的代价函数值。当刚开始K值比较小时,损失值都比较高,随着K值的逐步增加 损失函数会越来越小,且下降速度也叫较快;当K增大到一定程度后损失函数的下降速度开始变缓,而需要选择的就是下降速度 开始变缓时的K值。如图13-2所示,橙色点x之前随时K的增大损失函数下降较快,橙色点x之后变换则明显变缓,所以应当选取橙色点x所对应的K值,类似于一条手臂手肘的位置。

直觉上可理解为过了“肘部”分类的效益已经不大了。

3.2 随机初始化

在选定K值之后,就要考虑初始化样本中心的问题,需要注意的是K值不应该大于样本数m。具体的方法可为:随机选择K个训练样本,然后令K个类别中心与这K给训练样本相等。

K-means算法的一个问题在于样本中心的初值选择不好,可能会造成最终收敛到一个局部最优解。为解决这个问题,一般会进行多次随机初始化并训练,选取效果最好的一组结果。不过当K较大时,这种方法对结果也不一定能有所改善。

3.3 距离的度量

样本之间的距离除了用欧式距离度量外,还有以下度量方式:

    1.闵可夫斯基距离(Minkowski)

                                                     dist(X,Y) = ( \sum_{i=1}^{n}\left | x_{i} - y_{i} \right |^{p} )^{\frac{1}{p}}               (公式 13.2)

     2.杰卡德相似系数(Jaccard)

                                                 J(X,Y) = \frac {\left| A \cap B \right|}{\left| A\cup B \right|}               (公式 13.3)

     3.余弦相似度(cosine similarity)

                                                 cos(X,Y) = \frac {X^{T}Y }{\left| X \right| *\left| Y \right| }               (公式 13.4)

     4.皮尔逊相关系数(Pearson similarity)

                                                   p (X,Y) = \frac { cov(X,Y) }{ \sigma_{x} \sigma_{y} } = \frac { E[(X-\mu_{X} )(Y-\mu_{Y})]) }{ \sigma_{x} \sigma_{y} }               (公式 13.5)

四,总结

本章主要学习了以下知识点:

  1. 介绍了无监督算法以及聚类问题。
  2. 重点讲解了K-means聚类算法的理论。
  3. 介绍了K-means聚类算法的一些应用细节。

你可能感兴趣的:(吴恩达机器学习,机器学习)