矩阵分析中的算法(稀疏矩阵压缩存储与高效运算算法)7.11 稀疏矩阵分解与低秩近似 - 完整实现import numpy as np import scipy.sparse as sp import scipy.sparse.linalg as spla from scipy.sparse.linalg import svds, LinearOperator from scipy.optimize import nnls import warnings from typing import Tuple, Optional, Union, List, Dict, Any import time import logging from dataclasses import dataclass, field from enum import Enum import matplotlib.pyplot as plt from sklearn.decomposition import TruncatedSVD, PCA, NMF from sklearn.utils.extmath import randomized_svd import torch import torch.nn as nn import torch.optim as optim # 设置日志 logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) class DecompositionMethod(Enum): """矩阵分解方法枚举""" RANDOMIZED_SVD = "rando