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

    xiaoxiao2021-03-25  100

    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  <script id="MathJax-Element-3732" type="math/tex">D</script> 的Voronoi Diagram划分,每个原型向量对应着一片区域,此区域内的样本点就隶属于此原型向量所代表的聚类簇,也即每个样本被划入与之最近的原型向量所代表的聚类簇中。

    转载请注明原文地址: https://ju.6miu.com/read-19792.html

    最新回复(0)