LVQ,Learning Vector Quantization,学习向量量化
2017-09-29 22:38
846 查看
LVQ,Learning Vector Quantization,学习向量量化
LVQ需要数据样本带有类别标记,学习过程中需要利用这些监督信息来辅助聚类。 接受代标记的数据集D和原型向量个数k,以及初始化的原型向量标记ti,ti∈Y,i=1,2,…,k,学习率参数η∈(0,1)。输出为原型向量q1,q2,…,qk。
为更清晰的描述LVQ,我们假设样本集为
D={(x1,y1),(x2,y2),…,(xm,ym)}
每个样本均由 n个属性描述,即
xj=(xj1,xj2,…,xjn),yj∈Y,j=1,2,…,m
LVQ的学习目标是得到k 个n 维原型向量
q1,q2,…,qk
算法主要步骤包括:初始化原型向量;迭代优化,更新原型向量。
具体来说,主要是:
1、对原型向量初始化,可以选择满足yj=tj,j∈{1,2,…,m}条件的某个样本 xj=(xj1,xj2,…,xjn)作为 qj的初始值;
2、从数据集D 中任意选择一个样本 xj,找到与此样本距离最近的原型向量,假设为qi ;
3、如果xj的标记yj 与qi的标记ti相等,即 yj=ti,则令
q′=qi+η⋅(xj−qi)
否则,
q′=qi−η⋅(xj−qi)
4、更新原型向量:
qi=q′
5、判断是否达到最大迭代次数或者原型向量更新幅度小于某个阈值。如果是,则停止迭代,输出原型向量;否则,转至步骤2。
其中步骤3和4的物理意义是:如果xj和最近的原型向量qi具有同样的类别标记,则令 qi向 xj的方向靠拢,且
dist(p′,xj)=(1−η)⋅dist(pi,xj)
否则,qi 远离 xj,且
dist(p′,xj)=(1+η)⋅dist(pi,xj)
得到原型向量后,即可实现对数据集D 的Voronoi
Diagram划分,每个原型向量对应着一片区域,此区域内的样本点就隶属于此原型向量所代表的聚类簇,也即每个样本被划入与之最近的原型向量所代表的聚类簇中。
相关文章推荐
- LVQ学习向量量化网络
- [ML]聚类之学习向量量化LVQ
- LVQ学习向量量化神经网络
- 聚类算法——python实现学习向量量化(LVQ)算法
- LVQ(Learning Vector Quantization)神经网络概述
- 机器学习之学习向量量化(LVQ)
- 学习C++ -> 向量(vector)
- 自组织映射网络和学习向量量化网络
- STL源码学习——Vector(向量)
- Matlab:向量量化学习网络
- C++学习 -- 向量vector
- 学习C++ -> 向量(vector)
- DirectX 11游戏编程学习笔记之2: 第1章Vector Algebra(向量代数)
- 学习RaphaelJS矢量图形包--Learning Raphael JS Vector Graphics中文翻译(一)
- 学习矢量量化-LVQ
- 自组织映射网络和学习向量量化网络
- C++学习笔记(七)----向量(vector)的实现
- 【学习C++】学习C++ -> 向量(vector)
- 学习RaphaelJS矢量图形包--Learning Raphael JS Vector Graphics中文翻译(一)
- STL泛型编程学习之vector向量容器