一文搞懂K-means聚类和AP聚类

一文搞懂K-means聚类和AP聚类

1. K-means聚类

1.1 背景及发展介绍

K − m e a n s K-means Kmeans算法的思想最早可以追溯到1957年的Hugo Steinhaus,但是K-means这个术语在1967才被James MacQueen首次使用。

现在的 K − m e a n s K-means Kmeans一共有四种的变形,分别是LloydForgyMacQueenHartigan and Wong。最常用的就是 L l o y d Lloyd Lloyd算法,它采用了最小化集群内的最小平方和和迭代优化法。

由于 K − m e a s K-meas Kmeas属于一种贪婪算法,所以每一次到得到一个局部最优解,可能是全局最优,也可能不是。但是他的收敛速度比较快,一般是训练多个 K − m e a s K-meas Kmeas模型然后使用其中最优的那一个。下面重点对典型Lloyd进行介绍。

1.2 算法及公式介绍

假设现在有 k k k个数据,要将他们分为 k k k类。 K − m e a n s K-means Kmeans算法的目标是找到 k k k个组,使 N N N个实例的有最佳划分,即这 N N N个数据到他们所属中心点 c j , j = 1 , 2 , . . . k c_j,j=1,2,...k cj,j=1,2,...k的总距离最小。形式上,目标是将 N N N个数据划分为 k k k个集合 S i , i = 1 , 2 , . . . k S_i,i=1,2,...k Si,i=1,2,...k,使最小化集群内的平方和。

∑ j = 1 k ∑ i = 1 N ∥ x i j − c j ∥ 2 \sum_{j=1}^{k}\sum_{i=1}^{N}\Vert{x_i^j-c_j}\Vert^2 j=1ki=1Nxijcj2

其中 ∥ x i j − c j ∥ 2 \Vert{x_i^j-c_j}\Vert^2 xijcj2是任一个数据 x x x到它对应聚类中心的点的距离。

下面介绍最常用的 L l o y d Lloyd Lloyd算法的内容:

  1. 初始化 k k k个聚类中心点,一般是使用random随机生成 k k k个数值,然后直接根据生成的数值,在 N N N个实例中找到的对应的点作为初始点。另一种是直接随机生成 k k k个数据作为初始点。
  2. 将每一个数据分配到距离他最近的聚类中心点。要将他们分类,需要计算每个点到每个聚类中心的距离,然后找到最小的距离,将每个数据划分到哪里。
  3. 根据已经划分好的类别,重新计算 k k k个聚类中心点的值。计算的方法是,将分到每个类别下的数据的均值作为新的中心点
  4. 重复2,3步直到最大的迭代次数或收敛。

下面用图来具体说明 k − m e a n s k-means kmeans的工做流程:

上图很好的展示了 K − m e a n s K-means Kmeans的工做流程,迭代优化,每一次迭代更新聚类中心点,直到得到最大的迭代次数或已经收敛。

1.3 案例介绍

下面列举一个K-means在图片压缩方面的应用。

K-means应用在图片压缩的主要思想是:因为在图片中会有那些颜色相近的区域,我们考虑把那些颜色相近的区域,用一种颜色来代替,从而达到压缩图片的目的

下面是效果图:

原始图片:

三种颜色(三个聚类中心):

15种颜色(15个聚类中心):

50种颜色(50个聚类中心):

可以看到,虽然图像的质量较原图是有所下降的,但是整体上保留了图片的特征,并且分类数越多,图片质量越接近原图。

使用K-means进行压缩图片虽然会损失一些精度,但是他会保留图像的最重要的一些特征,利用这些特征又可以去干别的事

最后要注意的是,使用K-means时要将数据进行归一化处理,将变量都划分到相同的范围内,否则K-means会受到哪些特别大的变量的影响。

2. Affinity Propagation (AP)聚类

2.1 背景及发展介绍

亲和力传播( A P AP AP)由最早由Brendan Frey和Delbert Dueck于2007年发表在《科学》杂志上。

A P AP AP聚类算法是基于数据点之间”消息传递”的一种聚类算法。与一些传统的聚类算法,诸如

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值