「学习向量量化」(Learning Vector Quantization,LVQ)是一种原型聚类算法。学习向量量化试图找到一组原型向量来刻画聚类结构。但是 LVQ 假设训练样本带有类别标签,学习过程利用样本的这些监督信息来辅助聚类。
给定样本集
LVQ 的目标是学得一组
首先初始化原型向量,例如对第
然后对原型向量迭代优化。在每一轮的迭代中,随机选取一个有标记的训练样本,找出与其距离最近的原型向量,根据两者的类别标记是否一致来对原型向量进行相应的更新,直至满足停止条件。
例如迭代达到最大迭代轮数,或者原型向量更新很小甚至不再更新。
输入:样本集
输出:原型向量
过程:
直观上看,对样本
令学习率
学得一组原型向量
换言之,每个原型向量
由此形成了样本空间
仍然以西瓜数据集来掩饰 LVQ 得学习过程。
编号 | 密度 | 含糖率 |
---|---|---|
1 | 0.697 | 0.460 |
2 | 0.774 | 0.376 |
3 | 0.634 | 0.264 |
4 | 0.608 | 0.318 |
5 | 0.556 | 0.215 |
6 | 0.403 | 0.237 |
7 | 0.481 | 0.149 |
8 | 0.437 | 0.211 |
9 | 0.666 | 0.091 |
10 | 0.243 | 0.267 |
11 | 0.245 | 0.057 |
12 | 0.343 | 0.099 |
13 | 0.639 | 0.161 |
14 | 0.657 | 0.198 |
15 | 0.360 | 0.370 |
16 | 0.593 | 0.042 |
17 | 0.719 | 0.103 |
18 | 0.359 | 0.188 |
19 | 0.339 | 0.241 |
20 | 0.282 | 0.257 |
21 | 0.748 | 0.232 |
22 | 0.714 | 0.346 |
23 | 0.483 | 0.312 |
24 | 0.478 | 0.437 |
25 | 0.525 | 0.369 |
26 | 0.751 | 0.489 |
27 | 0.532 | 0.472 |
28 | 0.473 | 0.376 |
29 | 0.725 | 0.445 |
30 | 0.446 | 0.459 |
在K-均值算法中,西瓜数据集是没有标签的,在这个问题中,我们令 9~21 号的样本标记为
解:
初始化:根据样本的类别标记和簇的预设类别标记对原型向量进行随机初始化,假设初始化样本为
迭代:在第一轮迭代中,假定随机选择的样本为
看出
将