概述
原型聚类是指聚类结构能通过一组原型刻画,原型是指样本空间中具有代表性的点。通常情况下,算法先对原型进行初始化,然后对原型进行迭代更新求解,下面是几种著名的原型聚类算法。
K均值算法
给定样本集合D,K均值算法针对聚类所得簇划分C,最小化平方误差
E=∑ki=1∑x∈Ci||x−μi||22
其中 μi=1|Ci|∑x∈Cix 是簇 Ci 的均值向量。直观来看,这个误差刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高。
K均值法采用贪心策略,通过迭代近似求解上式,算法首先随机选择k个向量作为初始均值向量,然后是迭代过程,根据均值向量将样本划分到距离最近的均值向量所在的簇中,划分完成之后更新新的均值向量,直到迭代完成。
代码见最后
二分K均值法
K均值法依赖于初始均值向量的选择,导致算法可能收敛到局部最小值,一种改进的方法是二分K均值法,这里的二分不是指算法课程中的二分,而是一分为二的意思。
二分K均值法初始时将所有点看成一个簇,在簇的数量小于K的时候进行迭代,算法的核心是选择一个簇一分为二,这里一分为二的方法还是K均值法,只不过K变成了2。二分K均值依次计算每个簇一分为二后新的总平方误差,选择划分后总体平方误差最小的簇进行划分,代码见最后。
学习向量量化LVQ
与K均值法类似,学习向量量化也是试图找到一组原型向量来刻画聚类结构,但不同的是,LVQ假设数据样本带有类别信息,学习过程利用样本的这些监督信息来辅助聚类,可看作通过聚类来形成类别的子类结构,每个子类对应一个聚类簇。
给定样本集,原型向量个数,各原型向量的类别标记,学习率,
算法首先初始化一组原型向量,可以从该类别中随机选取一个向量作为原型向量。初始化完成之后,开始迭代过程,每次从样本集中选取一个样本 (x,y) ,将这个样本划分到距离它最近的原型向量 p 所在的簇中,如果这两个向量的类别标记相同,那么更新p为
若类别标记不相同,更新p为
p=p−η∗(x−