基于加权混合正则化约束的增强非负矩阵分解算法实现
项目介绍
本项目实现了一种高效稳健的非负矩阵分解(NMF)算法。通过在目标函数中引入自适应权重机制与混合正则化(L1/L2)约束,显著提升了分解结果的稀疏性和物理可解释性。算法支持自动选择最优分解秩,提供多种矩阵初始化策略,并采用先进的优化方法防止陷入局部最优,适用于高维数据降维、特征提取及盲源分离等多种场景。
功能特性
- 自适应加权稀疏正则化:根据数据特性动态调整正则化权重,平衡稀疏性与重构精度
- 混合正则化约束:结合L1与L2范数优势,有效控制解的稀疏性与平滑性
- 自动秩估计技术:基于矩阵分解稳定性自动确定最佳分解秩,避免主观选择
- 多重初始化策略:支持随机初始化、SVD基础初始化及用户自定义初始化
- 鲁棒优化算法:采用交替方向乘子法(ADMM)进行迭代优化,确保全局收敛性
- 全面分析报告:提供重构误差曲线、稀疏度分布、收敛诊断图及多种质量评估指标
使用方法
基本调用
% 输入非负数据矩阵X(M×N维)
[W, H, info] = main(X);
完整参数设置
% 设置自定义参数
params.k = 50; % 分解秩(默认为自动计算)
params.max_iter = 1000; % 最大迭代次数(默认500)
params.tol = 1e-7; % 收敛阈值(默认1e-6)
params.lambda1 = 0.1; % 稀疏正则化系数(默认自适应)
params.lambda2 = 0.05; % 平滑正则化系数(默认自适应)
params.init_method = 'svd'; % 初始化方法('random'/'svd'/'custom')
[W, H, info] = main(X, params);
输出结果
- W: 基矩阵(M×k维),包含数据的基础特征模式
- H: 系数矩阵(k×N维),表示特征在样本中的权重分布
- info: 分析报告结构体,包含:
-
error_curve: 迭代重构误差变化曲线
-
sparsity_W/H: 基矩阵与系数矩阵的稀疏度百分比
-
stability_score: 分解结果稳定性评估得分
-
convergence_flag: 收敛状态标识
系统要求
- 操作系统: Windows/Linux/macOS
- 运行环境: MATLAB R2018b或更高版本
- 内存需求: 最低4GB(建议8GB以上,具体取决于数据规模)
文件说明
主程序文件实现了完整的增强非负矩阵分解流程,包括数据预处理与验证、自适应参数计算、基于混合正则化约束的目标函数构建、通过交替方向乘子法进行矩阵因子迭代优化、收敛性判断与监控、分解结果质量评估与可视化分析报告生成等核心功能。