学习向量量化(Learning Vector Quantization ,LVQ))及其扩展方法

文摘   2024-12-15 08:54   北京  


PSYCH统计实验室


【概念目录】

学习向量量化(LVQ)

广义学习向量量化(GLVQ)

广义矩阵学习向量量化(GMLVQ)

局部广义矩阵学习向量量化(LGMLVQ)

Vol.1

概念

1

学习向量量化(LVQ)——一切的基础

1.1 概述

学习向量量化(LVQ)是一种基于原型(prototypes)的监督学习算法,用于分类任务。LVQ 从给定的数据集 \(\{(x_1, y_1), ..., (x_m, y_m)\}\) 开始,其中 \(x_i\) 是数据点,\(y_i\) 是对应的类别标签。LVQ 试图在数据空间中放置 \(K\) 个原型 \(w_1, ..., w_K\)。原型的数量 \(K\) 是一个需要用户指定的超参数。这个参数决定了模型中原型的数量,通常默认设置为每个类别一个原型。这些原型是数据空间中的向量,它们被放置在特定的位置,来代表不同的类别,以便在最近邻分类中达到尽可能高的准确性。

LVQ 的目标是放置原型,使得尽可能多的数据点被正确分类。这意味着,对于每个数据点,如果它最近的原型与其真实类别标签相同,那么这个数据点就被正确分类了。原型的放置是通过训练过程来优化的,这个过程涉及到根据数据点的分类结果来调整原型的位置。如果一个数据点被错误分类,那么其最近的原型会根据一定的学习率向该数据点移动,以减少错误分类的发生。LVQ 试图构建一个高度稀疏的模型,这意味着它试图用尽可能少的原型来代表数据中的类别,从而减少模型的复杂性。

1.2 工作步骤

初始化原型的数量和位置。

将每个数据点分配给最近的原型,并赋予相应的类别标签。

通过调整原型的位置来优化分类性能。


2

广义学习向量量化(GLVQ)

GLVQ 是 LVQ 的扩展,它通过为每个特征分配一个相关性权重来提高分类的准确性。这些权重通过 LBFGS 算法优化,并且可以用来进行降维。

3

广义矩阵学习向量量化(GMLVQ)

GMLVQ 进一步扩展了 GLVQ,通过学习一个完整的线性变换矩阵 Ω来支持分类(可以看作是在特征空间中对数据进行线性变换的规则)。这个矩阵可以看作是对欧几里得距离的扭曲(欧几里得距离是度量两个点在空间中直线距离的标准方法。GMLVQ 通过 Ω 矩阵变换数据点,从而改变它们之间的距离度量,使得同类数据点在变换后的空间中更接近,而不同类数据点更远离。),使得同类数据点更相似,不同类数据点更不相似(意思是通过 Ω矩阵的变换,GMLVQ 使得属于同一类别的数据点在新的特征空间中更加接近,这有助于分类器更容易地区分不同类别,同理,不相似means分散)。GMLVQ 可以执行隐式降维,并且通过学习到的 Ω矩阵来提高分类性能(这里的“隐式”,是因为它不是通过选择特征子集来实现,而是通过变换来实现)。

4

局部广义矩阵学习向量量化(LGMLVQ)

LGMLVQ 为每个原型学习一个单独的 Ωk矩阵,以考虑局部依赖性。这种方法特别适用于多类数据集,其中理想的投影可能对每个类别甚至每个原型都不同。LGMLVQ 通过为每个原型选择正交的投影维度来增强分类准确性。

Vol.2

总结

下面,让我们用一个表格来展现以上四种方法区别和联系:


Vol.3

应用

# 使用 pip 进行安装:pip install sklearn_lvq

from sklearn_lvq import GlvqModel

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

from sklearn.metrics import accuracy_score

# 加载数据集,这里以鸢尾花数据集为例

iris = load_iris()

X, y = iris.data, iris.target

# 将数据集分为训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 初始化 GLVQ 模型

# 这里我们为每个类别初始化一个原型,使用默认的其他参数

glvq = GlvqModel(prototypes_per_class=1, random_state=42)

# 训练模型

glvq.fit(X_train, y_train)

# 使用训练好的模型进行预测

y_pred = glvq.predict(X_test)

# 计算并打印准确率

accuracy = accuracy_score(y_test, y_pred)

print(f"Accuracy: {accuracy:.2f}")


PSYCH统计实验室

参考文献

[1] “Learning Vector Quantization” Kohonen, Teuvo - Self-Organizing Maps, pp. 175-189, 1995.

[2] “Adaptive Relevance Matrices in Learning Vector Quantization” Petra Schneider, Michael Biehl and Barbara Hammer - Neural Computation, vol. 21, nb. 12, pp. 3532-3561, 2009

[3] “Limited Rank Matrix Learning - Discriminative Dimension Reduction and Visualization” K. Bunte, P. Schneider, B. Hammer, F.-M. Schleif, T. Villmann and M. Biehl - Neural Networks, vol. 26, nb. 4, pp. 159-173, 2012.

[4] “Adaptive Relevance Matrices in Learning Vector Quantization” Petra Schneider, Michael Biehl and Barbara Hammer - Neural Computation, vol. 21, nb. 12, pp. 3532-3561, 2009.


PSYCH统计实验室

通知公告

网络分析课程目前开放视频课啦

单次课200元/讲(学生),250元/讲(非学生)

共有四讲内容:

①横断面网络分析简介与基础

②网络分析与因子分析

③交叉滞后网络分析

④时间序列网络分析

购买后开放视频权限14天,可多次申请。

并赠送所有课程相关资料(无PPT)

如果想申请购买,请联系M18812507626


更多资讯

关注我们

文稿:Wink

排版:Little Star

责编:Wink
审核:摘星

本文由“Psych统计自习室”课题组原创,欢迎转发至朋友圈。如需转载请联系后台,征得作者同意后方可转载。

Psych统计自习室
大家好,我们是由来自北京师范大学,西南大学,天津医科大学等高校在读硕士、博士研究生组成的一个科研团队——Psych统计自习室。Psych统计自习室旨在关注心理学、精神病学领域的最前沿的系列研究,并做前沿统计知识的分享。
 最新文章