以下哪个不是迭代算法的缺点_无监督学习: K-means 聚类算法介绍

本文介绍了数据聚类的无监督学习问题,重点关注K-means算法。首先讨论了相似度的定义,接着详细阐述了K-means算法的工作原理、如何初始化重心(尤其是K-means++的改进方法),以及如何选择合适的K值。最后,分析了K-means算法的优点(简单、高效)和缺点(需预设K值,对异常数据敏感)。
摘要由CSDN通过智能技术生成

数据聚类是一个无监督学习问题。给n个无label的数据

, 将这n个数据聚类为k个类别。其中
,即每个数据
为d维,聚类数目k是超参数,可以根据聚类的效果进行调整。一个好的聚类算法有2个原则:
类内相似度尽量高,类间相似度尽量低。

c6ea185d6e32f33726706bf182dc1524.png
聚类的一个示意图

1.相似度

首先考虑如何定义相似度。定义相似度的方法有很多,只有定义一个恰到好处的相似度,才能更好的度量类内相似度和类间相似度。最常见的度量相似度的方法:特征空间的距离(余弦值和相关系数等也可以度量相似度,这里不作详述)。比如我们要度量

的相似度,常见的特征空间的距离有3种:

Euclidean Distance :

Minkowski Distance:

Kernel Distance:

是核函数可将低维空间的feature投映到高维空间,使某些在低维空间不可分的数据在投影后的高维空间可分。Euclidean Distance适合处理类别内的分布类似椭圆或者圆形的数据,Kernel Distance更适合处理复杂的线性不可分的数据。根据每种方法的特性不同,三种相似度度量方法有不同的应用场景。

b4c8c60a76c348ad05bea6c704ec38d8.png
1-1.更适合使用Euclidean Distance

342bf550f74ab08c3f2db95a12feb366.png
1-2. 更适合使用 Kernel Distance

2.K-means 算法介绍

K-meas 算法首先假设:每个类别有一个类别重心centerid

,且每个数据
仅属于某一个类别。将centerid定义 为某一个类别中所有数据的feature 平均值。

a2c84157e5e9957a2e5e3e8309e0f47a.png
2-1 重心示意

当给定所有的类别重心

时,函数
输出与
相似度最高的重心。当采用Euclidean Distance 度量相似度时,算法的Objective Function 为sum of squared error:

-

为每一个 数据

找到所属的类别, 因为
,该优化问题是非凸问题,也没有解析解。目前在除了遍历的方法,获取不到全局最优解(global optima)。采用迭代方法(iterative method)获取local optima (这个local optima 有可能是global optima):
  1. 随机初始化
  2. 重复执行以下操作直到收敛:
  3. a. 计算每个数据
    所属的类别:
  4. -
  5. b. 计算每个类别的重心
    :
  6. -

因为Objective Function 对

求偏导数,并令偏导数为0,解出
的表达式正好与第6行的形式一样,所以该算法可以保证Objective Function不断下降,直到收敛。算法迭代过程如图2-2所示。

6e501f6f7150ffcf76bc3a997d7a8beb.png
2-2. 算法迭代示意图

3. 如何更好的初始化重心:K-means++

根据初始起点

的不同,算法收敛到不同的local optima。所以一个很自然的想法,如何初始化
避免得到很差的local optima。

6963a972285abe5f688de80f3f7b135f.png
3-1. 不同的初始化,得到不同的local optima

K-means++ 是一种获取更好初始化的方法。不同于原始算法的等概率初始化重心

,K-means++ 按顺序的初始化重心。每个数据点
被选为重心的概率
正比与已经确定的重心
的距离。这样初始化得到的重心分布更均匀,理论上可以得到较好的local optima。
  1. 初始化
    ,每个数据点
    都是等概率被选中
  2. :
  3. 初始化第j个重心
  4. -

4. 如何选择K

在K-means中K是超参数,需要人工设定。面对一个新的数据集,目前没有一个准确的方法,帮助找出一个正确的K。直觉上,K设的越大,loss(Objective Function值)越小。当K与数据集大小相等时,loss达到最小值0,即每个数据点为一个类别。为了防止K过大,可以加入一些关于K的惩罚项。另一种确定K的方法是:选择当loss不在剧烈变化时的K。如图4-1所示

609047416283594ba9a81a4d3cf692d8.png
4-1. 3-7 都比较适合

5. K-means优点和缺点

优点:原理简单,易于理解,容易实现,计算效率高;

缺点:1. 算法需要指定聚类数目K;

2. 若存在异常数据,对异常数据敏感;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值