[ML]聚类之学习向量量化LVQ

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

LVQ需要数据样本带有类别标记,学习过程中需要利用这些监督信息来辅助聚类。
接受代标记的数据集 D  和原型向量个数k ,以及初始化的原型向量标记 t i ,t i Y,i=1,2,,k  ,学习率参数 η(0,1)  。输出为原型向量 q 1 ,q 2 ,,q k  
为更清晰的描述LVQ,我们假设样本集为

D={(x 1 ,y 1 ),(x 2 ,y 2 ),,(x m ,y m )} 
每个样本均由 n  个属性描述,即
x j =(x j1 ,x j2 ,,x jn ),y j Y,j=1,2,,m 
LVQ的学习目标是得到 k  n  维原型向量
q 1 ,q 2 ,,q k  

算法主要步骤包括:初始化原型向量;迭代优化,更新原型向量。
具体来说,主要是:
1、对原型向量初始化,可以选择满足 y j =t j ,j{1,2,,m}  条件的某个样本 x j =(x j1 ,x j2 ,,x jn )  作为 q j   的初始值;
2、从数据集 D  中任意选择一个样本 x j   ,找到与此样本距离最近的原型向量,假设为 q i  
3、如果 x j   的标记 y j   q i   的标记 t i   相等,即 y j =t i   ,则令
q  =q i +η(x j q i ) 
否则,
q  =q i η(x j q i ) 

4、更新原型向量:
q i =q   

5、判断是否达到最大迭代次数或者原型向量更新幅度小于某个阈值。如果是,则停止迭代,输出原型向量;否则,转至步骤2。
其中步骤3和4的物理意义是:如果 x j   和最近的原型向量 q i   具有同样的类别标记,则令 q i   x j   的方向靠拢,且
dist(p  ,x j )=(1η)dist(p i ,x j ) 
否则, q i   远离 x j   ,且
dist(p  ,x j )=(1+η)dist(p i ,x j ) 

得到原型向量后,即可实现对数据集 D  的Voronoi Diagram划分,每个原型向量对应着一片区域,此区域内的样本点就隶属于此原型向量所代表的聚类簇,也即每个样本被划入与之最近的原型向量所代表的聚类簇中。

你可能感兴趣的:(基础,机器学习算法,聚类,机器学习,聚类算法)