机器学习笔记11——无监督学习之k-means聚类算法

还记得在监督学习的过程中,经常出现这样一幅图


在监督学习中,训练集的数据都含有标签,并且可通过标签对数据进行分类,并且知道正确的答案。而在无监督学习中,数据集中的数据没有标签,对其进行分类也没有答案,只能通过聚类的方式进行分类,这就是无监督学习。

接下来我们将介绍无监督学习的第一个算法,k-means聚类算法

k-means聚类算法

在聚类问题中,给定一组训练集合 {x(1),x(2),...,x(m)} ,其中每个训练样本是n维的向量, x(i)Rn ,且训练样本没有标签。我们希望通过一些“簇”将数据分成几组。

k-means聚类算法的步骤如下:

  1. 初始化几个聚类中心,随机选取几个n维向量 μ1,μ2,...,μk

  2. 重复执行直到收敛:{

    对于每一个训练样本 i ,使得:


    对于每个聚类中心j,使得:


}

在上述的算法中, k 是我们想要找到的聚类的数量;聚类中心μj代表我们猜想的聚类的中心的位置。为了初始化聚类中心,我们可以随机选择 k 个训练样本,然后使得聚类中心与这k个样本的值相同(也存在其他初始化的方法)。

算法第二步的循环中有两个步骤,1.为每个训练样本 x(i) 分配到离它最近的聚类中心的 μj ,2.改变聚类中心 μj ,这个值是所有靠近该聚类中心的点的均值。


图中显示了k-means算法的执行过程。训练样本用点来表示,聚类中心用“X”表示。图(a)是原始的数据集,(b)是随机初始化聚类中心(c-f)显示了两次迭代k-means聚类算法的结果,在每一次迭代中,我们将每个训练样本分配给离该点最近的聚类中心(图中相同的颜色代表属于同一聚类中心);之后移动每一个聚类中心到所有分配到该中心的点的均值。

那么k-means聚类算法一定保证收敛吗?答案是肯定的,在某种意义上来说。

让我们通过定义偏差函数来证明这一结论:


其中, J 是衡量每一个训练样本x(i)与分配的聚类中心 μc(i) 的距离的平方之和。可以看出,k-means聚类算法针对 J 是严格的坐标下降。k-means聚类算法中第二步的循环内,不断重复最小化J的过程,一开始是固定参数 μ ,针对参数 c 最小化,之后是固定参数c,针对参数 μ 进行最小化操作。因此, J 一定是单调递减的,而J一定会收敛。

偏差函数 J 是一个非凸函数,所以针对J进行坐标下降不能保证收敛到全局最小值。换句话说,k-means聚类算法可能会收敛到局部最小值。尽管如此,k-means聚类的效果很好。但是如果担心算法收敛得到的局部值并不好,那么可以多次运行k-means算法(针对聚类中心使用不同的初始值)。最后,得到不同聚类的结果,选择使偏差函数 J(c,μ) 最小的聚类。

混合高斯模型与EM算法

这一小节将讲述针对密度估计的EM(Expectation-Maximization)算法。

这一部分讲的很高深,听得很迷茫,有些东西并没有理解到位。因此在此引用比较好的对混合高斯模型以及EM算法讲述到位的博文,通过对这两篇博文的理解,相信大家会有一个较为全面的知识结构。

[1] http://www.cnblogs.com/AndyJee/p/3732766.html
[2]http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值