【机器学习笔记】第11章:无监督学习

第11章:无监督学习

11.1 K-means算法

  • 监督学习(supervised learning):样本数据已经标记了所属的类别
  • 无监督学习(unsupervised learning):样本数据未标记所属的类别

无监督学习通常采用聚类算法(clustering algorithm)对其分门别类,通常称为“簇”(cluster)。常见的聚类算法有 K-means算法(K-均值算法),初始作如下定义:

  • K K K — 簇的数量
  • x ( i ) x^{(i)} x(i) — 第 i i i 个样本向量
  • c ( i ) c^{(i)} c(i) — 第 i i i 个样本所属的簇
  • μ k \mu_k μk — 第 k k k 个簇中心的向量
  • μ c ( i ) \mu_{c^{(i)}} μc(i) — 第 i i i 个样本所属的簇中心的向量

K-means主要由簇分配移动聚类中心两部分组成,是一种迭代的算法,2个簇的算法流程可描述如下:

  1. 簇分配:随机选择两个样本点,作为簇中心,将每个样本划分至距离更近的簇中心,作为它所属的簇;
  2. 移动聚类中心:分别计算每个簇中所有样本的均值,将取均值后的向量位置作为当前每个簇新的中心;
  3. 重新进行簇分配、移动聚类中心,不断迭代,直到聚类中心不再改变。

用伪代码,可描述如下:
在这里插入图片描述

11.2 优化目标函数

优化目标函数(代价函数)如下定义: J ( c ( 1 ) , ⋯   , c ( m ) , μ 1 , ⋯   , μ k ) = 1 m ∑ i = 1 m ∥ x ( i ) − μ c ( i ) ∥ 2 J(c^{(1)},\cdots,c^{(m)},\mu_1,\cdots,\mu_k)=\frac{1}{m}\sum_{i=1}^m\Vert x^{(i)}-\mu_{c^{(i)}}\Vert^2 J(c(1),,c(m),μ1,,μk)=m1i=1mx(i)μc(i)2可以看出,K-means算法的代价函数表示的是,所有样本与各自所属的簇中心的欧式距离的平方和再取平均值。

11.3 随机初始化

在运行K-means算法之前,我们首先要随机初始化所有的聚类中心点,方法如下:

  1. 应该选择K<m,即聚类中心点的个数要小于训练样本总数;
  2. 随机选择K个训练样本,然后令K个聚类中心分别等于这K个训练样本。

正是由于随机初始化的原因,K-means聚类算法有时候会陷入局部最优解。
如下图所示,就是一个局部最优的例子:
在这里插入图片描述
为了解决这个问题,我们可在上述伪代码外再嵌套一层循环,多次运行K-means算法,每一次都重新进行随机初始化,最后再比较多次运行K-means算法的结果,选择代价函数最小的结果。此方法适合K值较小(小于10)的情况,但如果K值较大,则不会有明显地改善。

11.4 K 值的选择

聚类数量的选择,通常有两种方法,均要求 K < m K<m K<m

  • 人工选择:根据需求或者已知的知识,人工选择聚类数量
  • 肘部法则:如下图所示,改变 K K K 值,选择变化率明显变缓的“肘部点”
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值