聚类

聚类(cluster),其实就是在没有训练集的情况下对样本进行分类。说白了,其实就是按照某种规则对样本进行直接的分类。但是由于不存在训练集,所以聚类的算法一般不会按照监督学习算法中——先生成一个模型,再用这个模型分类数据,这样的思路来设计。

本文通过介绍几种常见的算法,来体现聚类算法的一般思路:

K-Means

K-Means算法的设计思路其实是EM算法的一种体现,具体步骤如下:

1.先随机指定k个点,通过计算每个样本分别与这些点的“距离”(欧氏距离等),把这些样本划分到这k个点的范围之内(离哪个点近就属于哪个点)。通过这一步,已经把样本进行了第一次的聚类,但是由于这k个点是随机取的,所以聚类的效果肯定不好。

2.第1步中,我们已经把样本分成了k类。然后,我们再去分别计算每个类别中所有样本点的中心点(比如,属于第a类的所有样本的中心点就是这些样本坐标和的均值)。这些中心点作为新的k个点,再重复步骤1进行迭代,直到收敛。

对比EM算法,K-Means先假设了k个中心点,然后用假设的点聚类(E步),再根据聚类结果更新这k个中心点(M步)。只不过,K-Means中更新中心点值时,用的是硬指定的方法(根据E步的结果,直接对样本点分类,再用分类结果计算)。而一般的EM算法中,采用的是软指定的方式——根据E步的结果,计算出隐藏变量取值的概率。

K-Means算法的有如下缺点:

1.对孤立点敏感。

2.可能取到局部最优解。

3.很多时候"距离"难以量化,比如对不同的动物进行聚类,如何计算牧羊犬和波斯猫之间的距离呢?

为了解决3中的问题,有人引入了相异度矩阵,矩阵中的值标明了两个样本之间的差异度,然后在求中心点时采用中位数(不是均值)的方法来求解。但是,由于中位数需要遍历,增加了计算复杂度。

高斯混合模型(GMM)

GMM可以说是一个标准的EM算法,对于它的描述可以参考上一篇博客。

谱聚类(spectral clustering)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值