news 2026/5/13 0:27:27

Matlab实现GNMF测试阶段投影:将新数据映射到低维表示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Matlab实现GNMF测试阶段投影:将新数据映射到低维表示

在实际应用非负矩阵分解(NMF)或图正则化非负矩阵分解(GNMF)时,我们通常会先在训练集上学习基矩阵U,然后面对新来的测试数据时,需要快速得到其在同一低维空间中的表示V。这就是out-of-sample或测试阶段投影问题。

标准的NMF在测试阶段可以通过简单的非负最小二乘求解,但GNMF由于引入了图正则项,训练过程更复杂,直接对新样本重新优化整个目标函数会非常耗时且不现实。因此,一个高效的做法是:固定训练得到的基矩阵U,对新数据X_test求解V,使得X_test ≈ U * V^T,同时保持V非负。

今天分享的这个小函数GNMFtest正是实现这一功能的简洁高效工具。它假设U已经由GNMF训练好,直接通过闭式解的形式快速计算测试样本的低维系数矩阵V,非常适合在聚类、分类或检索任务中使用GNMF作为特征提取器时的测试流程。

函数的核心原理

给定训练得到的基矩阵U(mFea × k)和测试数据矩阵X(mFea × nTest),目标是求解:

min ||X - U V^T||² s.t. V ≥ 0

这是一个典型的非负最小二乘问题(NNLS)。当U的列线性无关时,可以通过以下方式近似求解:

V^T = (U^T U)^-1 U^T X → 再强制非负:V^T = max(0, (U^T U)^-1 U^T X)

即:

  1. 计算UTU = U^T * U(对称矩阵)

  2. 计算UTX = U^T * X

    </
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 10:22:41

人类有史以来最伟大的10大壮举与天问一号

文章目录1. 人类有史以来最伟大的10大壮举&#xff08;按影响与突破排序&#xff09;2. 天问一号时间线&#xff08;含关键节点&#xff09;1. 人类有史以来最伟大的10大壮举&#xff08;按影响与突破排序&#xff09; 生命科学&#xff1a;人类基因组计划&#xff08;2003&…

作者头像 李华
网站建设 2026/5/10 5:25:38

S32DS使用一文说清:S32K GPIO外设初始化步骤

S32DS实战指南&#xff1a;从零搞懂S32K GPIO初始化全流程你有没有遇到过这样的情况——代码烧进去&#xff0c;LED就是不亮&#xff1f;按键按烂了也没反应&#xff1f;调试半天才发现&#xff0c;原来是某个时钟没开、引脚复用配错了&#xff0c;或者方向寄存器写反了。这种低…

作者头像 李华
网站建设 2026/5/12 1:14:59

一文说清STM32F4串口通信的STM32CubeMX教程配置步骤

手把手教你用STM32CubeMX配置STM32F4串口通信&#xff1a;从零开始的实战指南你有没有遇到过这种情况&#xff1f;刚焊好一块STM32F4开发板&#xff0c;想通过串口打印“Hello World”验证一下基本功能&#xff0c;结果打开串口助手却一片漆黑——没输出。反复检查代码、波特率…

作者头像 李华
网站建设 2026/5/11 18:08:05

screen指令在ARM开发板调试中的应用详解

用screen调试 ARM 开发板&#xff1a;从串口连接到多任务协同的实战指南你有没有遇到过这样的场景&#xff1f;深夜正在远程调试一块远在实验室的ARM开发板&#xff0c;系统启动卡在某个阶段。你盯着终端一行行刷出的内核日志&#xff0c;正准备进入U-Boot修改启动参数——突然…

作者头像 李华
网站建设 2026/5/9 21:34:29

一文说清STM32MP1在ARM平台上的资源分配策略

STM32MP1 的“双核心法”&#xff1a;如何让 Linux 与实时控制和平共处&#xff1f; 在嵌入式开发的世界里&#xff0c;我们常常面临一个两难选择&#xff1a; 要性能&#xff0c;还是实时性&#xff1f; 运行 Linux&#xff0c;意味着你能轻松接入网络、跑图形界面、用现成…

作者头像 李华
网站建设 2026/5/10 6:50:03

i2c读写eeprom代码多字节写入实战演示

一次搞懂IC读写EEPROM&#xff1a;多字节写入实战与避坑指南你有没有遇到过这种情况——系统要保存几十个配置参数&#xff0c;结果一个一个字节往EEPROM里写&#xff0c;耗时又占CPU&#xff1f;更糟的是&#xff0c;某次跨页写入不小心“翻车”&#xff0c;数据莫名其妙错乱了…

作者头像 李华