吴恩达机器学习[14]-无监督学习之 K均值聚类算法

无监督学习 unsupervised learning

类型定义差异
监督学习给定一些带标签的数据,用假设函数去拟合它 ,寻找能够区分正样本和负样本的决策边界1、目标明确。
2、需要带标签的训练数据。
3、效果容易评估
无监督学习给定一些不带标签的数据,寻找数据中的内在性质及规律。
可作为一个单独的过程寻找数据内在的分布结构,或者分类或其他学习任务的前驱。如聚类 clustering。
1、目标不明确。
2、不需要带标签的数据。
3、效果很难评估

在这里插入图片描述
在这里插入图片描述
聚类的应用
在这里插入图片描述

K-Means算法 K-Means algorithm

引入:在聚类问题中,我们将给定一组未加标签的数据集,同时希望有一个算法将自动地将这些数据划分为有紧密关系的子集或者簇。K均值(K-Means)算法是现在热门且广泛应用的聚类算法,接下来的将学习K均值算法的定义及原理。

假设我有一个如下图所示的无标签数据集,我想将其划分为两个簇。
在这里插入图片描述
使用K均值(K-Means)算法的步骤如下,其中簇分配和移动聚类中心是K均值算法内循环的两步。

  • 1、随机生成两点(实际聚类中心初始化方法不然),也就是聚类中心(Cluster centroids),也就是图上的两个叉。此时,选择两个聚类中心是因为希望将数据划分为两类。

在这里插入图片描述

  • 2、簇分配(cluster assignment)。遍历每个样本(上图的每个绿点),然后根据样本点离哪个聚类中心更近,将不同的点分配给两个聚类中心之一。
    在这里插入图片描述
  • 3、移动聚类中心(move centroid)。移动聚类中心(也就是红叉和蓝叉),将其移动到同色点的均值处。也就是,计算所有红点的平均位置,然后把红点的聚类中心移动到平均位置处。蓝点的聚类中心也是同理。
    在这里插入图片描述
  • 4、重复2-3,直到聚类中心以及聚类的点都不再改变。

在这里插入图片描述

下面用更规范的方式写出K均值算法。
K均值算法拥有两个输入:聚类个数K无标签数据集x( x ( i ) x^{(i)} x(i)属于n维实数)
在这里插入图片描述
K均值算法的步骤如下图。

  • 簇分配。 c ( i ) c^{(i)} c(i)表示最接近 x ( i ) x^{(i)} x(i)的聚类中心,用1-k表示。这一步的工作也可以表述为,寻找能最小化 ∣ ∣ x ( i ) − u k ∣ ∣ 2 || x^{(i)}-u_k||^2 ∣∣x(i)uk2(习惯上用距离的平方)的k,然后将这个k赋值给 c ( i ) c^{(i)} c(i)
  • 移动聚类中心。 u k u_k uk表示这个簇中所有点的均值。

注意:如果存在聚类中心 u k u_k uk,簇分配后没有聚类点。那么可以直接移除这个聚类中心(常见做法),或者随机初始化这个聚类中心。

在这里插入图片描述

K均值算法的一个常见应用为解决分离不佳的簇问题,如图右侧。
对于不能很好地划分为几个簇的数据集,还是可以对数据集执行K均值算法,将数据集进行划分。
在这里插入图片描述

优化目标 Optimization objective

K均值算法的优化目标:使得所有 x ( i ) x^{(i)} x(i)与对应聚类中心距离平方和最小化,即 J ( c ( 1 ) , c ( 2 ) , … , c ( m ) , u i , u 2 , … , u K ) J(c^{(1)},c^{(2)},…,c^{(m)},u_i,u_2,…,u_K) J(c(1),c(2),,c(m),ui,u2,,uK)(代价函数,有时又称失真代价函数distortion cost function,或K均值算法的失真)。
在这里插入图片描述

簇分配的过程,就是在 u i u_i ui不变时最小化代价函数。因此第一步是计算出每个点到各个聚类中心的距离,从而选择出 c i c_i ci
移动聚类中心的过程,就是选择 u u u值来最小化代价函数。
因此,K均值算法首先最小化关于变量 c c c的代价函数 J J J,再最小化关于 u u u变量的代价函数 J J J。然后保持迭代

“wrt”’,with respect to 关于。

在这里插入图片描述

距离计算
“距离度量(distance measure)”函数 d i s t ( x i , x j ) dist(x_i,x_j) dist(xi,xj)(对应上文中的 ∣ ∣ x i − x j ∣ ∣ 2 ||x_i-x_j||^2 ∣∣xixj2),满足非负性( d i s t ( x i , x j ) > 0 dist(x_i,x_j)>0 dist(xi,xj)>0)、同一性(当且仅当 x i = x j x_i=x_j xi=xj时, d i s t ( x i , x j ) = 0 dist(x_i,x_j)=0 dist(xi,xj)=0)、对称性( d i s t ( x i , x j ) = d i s t ( x j , x i ) dist(x_i,x_j)=dist(x_j,x_i) dist(xi,xj)=dist(xj,xi))、直递性( d i s t ( x i , x j ) ≤ d i s t ( x i , x k ) + d i s t ( x k , x j ) dist(x_i,x_j) \le dist(x_i,x_k)+dist(x_k,x_j) dist(xi,xj)dist(xi,xk)+dist(xk,xj))。一般根据数据有序或无序选择距离衡量指标。

  • 有序属性可用闵可夫斯基距离(Minkowski distance)衡量。
    在这里插入图片描述
  • 无序属性可用VDM(Value Differenc Metric)衡量。
    在这里插入图片描述在这里插入图片描述

随机初始化 random initialization

学习目标:讨论如何初始化K均值聚类算法,重点是学习如何使算法避开局部最优

下面介绍随机初始化聚类中心的最佳方法。
在这里插入图片描述

推荐的随机初始化聚类中心方法:随机选择K个训练样本,然后使聚类中心 u k u_k uk分别等于这K个样本。
需要注意的是:K<m
在这里插入图片描述

K均值算法的最终收敛结果可能取决于初始聚类中心,也就是说代价函数可能落到局部最优解(如图下部)。
在这里插入图片描述

为了得到一个好结果,可以运行K均值算法很多次取代价函数最小的解(即畸变值最小者 lowest distortion)
事实证明,如果运行K均值算法时所用的聚类数相当小(如在2-10之间),那么多次随机初始化通常能保证最终得到一个较好的局部最优解;如果聚类数比较大时,那么多次随机初始化就不会有太大的改善,一般来说取第一次聚类结果已经可以了。
在这里插入图片描述

选取聚类数量

引入:本部分讲解如何选取K均值算法的聚类数量。值得注意的是,选取聚类数量最常用的方法还是通过使用可视化图、观察聚类算法的输出等,进行手动选择聚类的数目

选取聚类数量不容易的主要原因在于:有多少个聚类是不清楚的。比如下图,聚类数量可为2、3、4。这也是无监督学习的一个特点,没有标签,最终结果没有确定值。
在这里插入图片描述

下面介绍选择聚类数量的方法。
方法一:肘部法则(Elbow Method)
原理:分别取K=1,2,3,4……,计算出对应结果中代价函数的值,从而画出一条 J J J随着K变化的曲线。取曲线拐点(“肘部”)对应的的聚类数量为适合的聚类数量。
缺点:实际应用中,拐点可能不那么清晰(如图右侧)。
在这里插入图片描述

方法二:以下游目的为评判标准,选择聚类数量
比如:对于T恤尺寸选择问题,可以根据最终想得到三种尺寸还是五种尺寸,来确定初始聚类数目 K K K为3还是5。

在这里插入图片描述

总之,选择K均值聚类最常用的方法还是手动选择,根据后续目的选择初始聚类数量。肘部法则大部分只能提供参考。

性能度量

直观来看,聚类希望达到“物以类聚”,也就是说聚类结果的“聚类相似度(intra-cluster similarity)”高且“簇间相似度(inter-cluster similarity)”低。聚类性能度量指标包括两类,包括外部指标(external index)和内部指标(internal index)。

  • 预备知识
    在这里插入图片描述

  • 外部指标(external index),将聚类结果与某个“参考模型”进行比较。包括Jaccard系数(Jaccard Coeffient,JC)、FM指数(Fewlkes and Mallows index,FM)、Rand指数(Rand index,RI),值越越好。
    在这里插入图片描述
    在这里插入图片描述

  • 内部指标(internal index),直接参考聚类结果而不利用任何参考模型。包括DB指数(Davies-Bounldin Index,DBI),值越越好;Dunn指数(Dunn Index,DI),值越越好。
    在这里插入图片描述

扩充-原型聚类

定义:原型聚类(prototype-based clustering)又称“基于原型的聚类”,此类算法假设聚类结构能够通过一组原型刻画,在现实中极为常用。通常,算法先对原型进行初始化,然后对原型进行迭代更新求解。采用不同的原型表示、不同求解方式,将产生不同的算法。

常见的原型聚类算法

  • K均值聚类
    在这里插入图片描述
  • 学习向量化
    在这里插入图片描述
  • 高斯混合聚类
    在这里插入图片描述
  • 密度聚类
    在这里插入图片描述
  • 层次聚类
    在这里插入图片描述

参考链接
网易版吴恩达机器学习课程
吴恩达机器学习 网易云课堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值