聚类之K均值聚类和EM算法
这篇博客整理K均值聚类的内容,包括: 1、K均值聚类的原理; 2、初始类中心的选择和类别数K的确定; 3、K均值聚类和EM算法、高斯混合模型的关系。 一、K均值聚类的原理 K均值聚类(K-means)是一种基于中心的聚类算法,通过迭代,将样本分到K个类中,使得每个样本与其所属类的中心或均值的距离之和最小。 1、定义损失函数 假设我们有一个数据集{x 1 , x 2 ,..., x N },每个样本的特征维度是m维,我们的目标是将数据集划分为K个类别。假定K的值已经给定,那么第k个类别的中心定义为μ k ,k=1,2,..., K,μ k 是一个m维的特征向量。我们需要找到每个样本所属的类别,以及一组向量{μ k },使得每个样本与它所属的类别的中心μ k 的距离平方和最小。 首先,这个距离是什么距离呢?聚类需要根据样本之间的相似度,对样本集合进行划分,将相似度较高的样本归为一类。度量样本之间相似度的方法包括计算样本之间的欧氏距离、马氏距离、余弦距离或相关系数,而K均值聚类是用欧氏距离的平方来度量样本之间的相似度。欧式距离的平方公式如下: 把所有样本与所属类的中心之间距离的平方之和定义为损失函数: 其中r nk ∈{0,1},n=1,2,...,N,k=1,2,...,K,如果r nk =1,那么表示样本x n 属于第k类,且对于j≠k,有r nj =0,也就是样本x n