几种主要的原型聚类----k均值(k-means)、学习向量量化(LVQ)、高斯混合聚类(Mixture-of-Gaussian)

引入

  • 原型聚类也称为基于原型(样本空间中具有代表性的点)的聚类,通常算法先对原型进行初始化,然后对原型进行迭代更新求解,采用不同的原型表示、不同的求解方式,将产生不同的算法。

K均值(K-means)

算法针对聚类所得簇划分最小化平方误差E(具体公式见P202),式子在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E越小则簇内样本相似度越高。k均值类算法仅在凸形簇(类似于椭圆形)结构上效果较好。

由于最小化式子E并不容易,找到它的最优解需要考查样本集D的所有可能划分,这是一个NP问题。K均值算法采用贪心策略,通过迭代优化来近似求解式E。

  • 过程:输入为样本集D和聚类簇数k,输出为簇划分C={C1,C2,…,Ck};
    1.随机选择k个样本作为初始均值向量;
    2.考查所有的样本,计算样本与之前选择的初始均值向量的距离,离哪个近就归为哪一类
    3.根据刚分好的k类,计算出新的均值向量;
    4.重复过程2和3,直到迭代产生的结果与上一轮迭代相同或达到设定的迭代次数,算法停止,得到最终的簇划分。

学习向量量化(Learning Vector Quantization,LVQ)

学习向量量化与k均值算法类似,也是试图找到一组原型向量来刻画聚类结构,与一般聚类算法不同的是,LVQ假设数据样本带有类别标记,学习过程利用样本的这些监督信息来辅助聚类

  • 过程:输入为样本集D,原型向量个数q(聚类个数),学习率η,输出为原型向量{p1,p2,…,pq};
    1.初始化一组原型向量(一般每一类随机选一个);
    2.从样本集随机选取样本(xj , yj),计算xj与每一个原型向量pi的距离di;
    3.选择与xj距离最近的原型pi;
    4.若样本的标签yj =该原型向量的标签ti,则p’ = pi +η(xj-pi),若yj != ti,则p’ = pi -η(xj-pi);
    5.将原型向量pi替换为p’
    6.重复上述2~5,直到原型向量不再进行替换。

高斯混合聚类(Mixture-of-Gaussian)(有点难理解)

与K均值、LVQ用原型向量来刻画聚类结构不一样,高斯混合聚类采用概率模型来表达聚类原型
首先我们先来了解高斯分布也就是正态分布,一般我们最常见最熟知的一元正态分布的标准形式和曲线是这样的:
几种主要的原型聚类----k均值(k-means)、学习向量量化(LVQ)、高斯混合聚类(Mixture-of-Gaussian)_第1张图片

正态分布可以记为N(μ,σ2)。从上面的公式很明显可以看出一元正态分布只有两个参数μ和σ,且这两个参数决定了正态曲线的“宽窄”、“高矮”。 曲线下面积为1。

那么,二元及以上(多元)多元高斯分布定义,对样本空间X中的随机向量x,若x服从高斯分布,其概率密度函数为:
在这里插入图片描述

其中μ是n维均值向量,Σ是n*n的协方差矩阵,由式子可以看出,高斯分布完全是由均值向量μ和协方差矩阵Σ这两个参数确定的。我们将概率密度函数记为p(x|μ,Σ)。
在此我们可定义高斯混合分布:
在这里插入图片描述

该分布共由k个混合成分组成,每个混合成分对应一个高斯分布,其中μi与Σi是第i个高斯混合成分的参数,而ai>0为相应的混合系数。上面所示高斯混合分布可以让我们计算当我们选择其中一个样本时发生的概率(不知是否理解错误)。

接下来,我们需要根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本,根据贝叶斯定理:
几种主要的原型聚类----k均值(k-means)、学习向量量化(LVQ)、高斯混合聚类(Mixture-of-Gaussian)_第2张图片

上面这个公式可以让我们得知,我们当前所选择的样本属于哪一簇的概率最高,说明其来自于哪一类可能性最大。在已有的结果面前推测我们未知但存在的规律。

从原型聚类的角度来看,高斯混合聚类是采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应后验概率确定。

  • 总结高斯混合聚类的步骤:
    1.首先假设样本集具有一些规律,包括可以以α参数作为比例分为k类且每类内符合高斯分布;
    2.然后根据贝叶斯原理利用极大似然法同时求出决定分类比例的α和决定类内高斯分布的μ、Σ;
    3.最后将样本根据α、μ、Σ再次通过贝叶斯原理求出样本该分在哪个簇。
  • 算法的输入为样本集D和高斯混合成分个数k,输出为簇划分C = {C1,C2,…,Ck}。

你可能感兴趣的:(机器学习,西瓜书,机器学习,聚类)