matrix-factorization相关内容

非负矩阵分解:交替最小二乘法

我正在尝试用交替最小二乘法实现NMF。我只是好奇这个问题的以下基本实现: 如果我理解正确的话,我们可以用封闭形式的解来求解这个伪代码中陈述的每个矩阵方程,没有非负性约束,并以一种蛮力的方式将负条目设置为0。这种理解正确吗?例如,在我们使用投影梯度下降的情况下,这是更复杂、更受约束的优化问题的基本替代方案吗?更重要的是,如果以这种基本的方式实现,算法还会有实用价值吗?我想使用NMF进行变量缩减 ..
发布时间:2022-04-12 10:55:55 其他开发

Julia:将 CHOLMOD 因子转换为稀疏矩阵并再次转换回来

我有一个稀疏矩阵 H 的 CHOLMOD 分解,我想编辑上、下和块对角因子的稀疏表示.我怎样才能做到这一点?当我运行以下命令时,最后一行不起作用. H = sprand(10,10,0.5)fac = ldltfact(H; shift=0.0)fD = fac[:D]D = Base.SparseArrays.CHOLMOD.Sparse(fD) 有没有什么方法可以从一个稀疏矩阵反向转到一个 ..
发布时间:2022-01-23 19:53:35 其他开发

处理零和缺失数据的 Python 非负矩阵分解?

我寻找一个 NMF 实现,它有一个 python 接口,并处理丢失的数据和零. 我不想在开始分解之前估算我的缺失值,我希望它们在最小化函数中被忽略. scikit-learn、nimfa、graphlab 和 mahout 似乎都没有提出这样的选择. 谢谢! 解决方案 使用这个Matlab 到 python 代码转换表 我能够从 Matlab 工具箱 库重写 NMF. ..

使用置换矩阵的稀疏矩阵的 Cholesky 分解

我对大型稀疏矩阵的 Cholesky 分解感兴趣.我遇到的问题是 Cholesky 因子不一定是稀疏的(就像两个稀疏矩阵的乘积不一定是稀疏的一样). 例如,对于仅沿第一行、第一列和对角线具有非零值的矩阵,Cholesky 因子具有 100% 填充(下部和上部三角形为 100% 密集).在图像下方,灰色不为零,白色为零. 我知道的一个解决方案是找到一个置换 P 矩阵并进行 PTAP 的 ..

避免在使用Eigen分解稀疏矩阵上进行动态内存分配

在我的应用程序中,除类构造函数外,我需要避免动态内存分配(类似malloc).我有一个稀疏的半定矩阵M,其元素在程序执行过程中会发生变化,但它具有固定的稀疏性模式. 为了尽可能快地求解许多线性系统M * x = b,其想法是在类构造函数中使用就地分解,如 cs_symperm_noalloc 是CSparse库的 cs_symperm 函数的次要重构. 这似乎行得通,至少与我的特 ..
发布时间:2021-05-03 20:11:00 C/C++开发

非常大和非常稀疏的非负矩阵分解

我有一个非常大且稀疏的矩阵(531K x 315K),总细胞数约为1670亿.非零值仅为1s.非零值的总数约为45K.是否有有效的NMF软件包来解决我的问题?我知道有几个软件包,它们仅适用于较小的数据矩阵.任何想法都可以.预先感谢. 解决方案 输出: X-shape:(531000,315000)X nnzs:45000类型(X): ..
发布时间:2021-04-15 19:25:28 Python

在TensorFlow中使用coo_matrix

我正在TensorFlow中进行矩阵分解,我想使用Spicy中的coo_matrix.sparse因为它使用的内存更少,并且可以轻松地将所有数据放入矩阵中以训练数据. 是否可以使用coo_matrix在tensorflow中初始化变量? 还是我必须创建一个会话并使用sess.run()和feed_dict将我输入到tensorflow的数据馈入 . 我希望您理解我的问题,否则我的问 ..
发布时间:2020-08-06 02:07:37 其他开发

有没有好的库可以快速进行非负矩阵分解(NMF)?

我有一个形状为 570000 * 3000 的稀疏矩阵.我尝试 nima 进行NMF(使用默认的nmf方法,并将max_iter设置为65).但是,我发现nimfa非常慢.有没有人使用更快的库来做NMF? 解决方案 我使用了 之前.它是用C编写的,非常快. 论文记录了算法和代码 本文还列出了NMF的几种替代软件包(以多种不同的语言(我已在此处复制以供将来参考). Mathwor ..
发布时间:2020-07-31 04:10:03 C/C++开发

在正半定矩阵的Cholesky分解中正确使用枢轴

我不明白如何在R中使用chol函数来分解一个正半定矩阵. (或者我这样做,并且有一个错误.) 如果ivot = TRUE,则可以计算正半定x的Choleski分解. x的等级以attr(Q,"rank")的形式返回,这会受到数值误差的影响.枢轴返回为attr(Q,"pivot"). t(Q)%*%Q不再等于x.但是,设置枢轴 以下示例似乎掩盖了这一描述. > x ..
发布时间:2020-05-07 19:09:33 其他开发

Sympy:在有限域中求解矩阵

对于我的项目,我需要在给定矩阵Y和K的情况下求解矩阵X.(XY = K)每个矩阵的元素必须是对256位随机质数求模的整数.解决这个问题的第一个尝试是使用SymPy的mod_inv(n)函数.问题是我的矩阵大小为30的内存用完了.我的下一个想法是执行矩阵分解,因为这样可能减轻了内存的负担.但是,SymPy似乎不包含能够找到以模为模的矩阵的求解器.我可以使用任何解决方法或自制代码吗? 解决方案 ..
发布时间:2020-05-07 18:48:44 Python

编写一个可跟踪的R函数,该函数模仿LAPACK的dgetrf进行LU分解

R核心中没有LU分解功能.尽管这种分解是solve的一个步骤,但并未明确使其可作为独立功能使用.我们可以为此编写一个R函数吗?它需要模仿LAPACK例程 dgetrf . Matrix程序包具有 lu函数,它很好,但是最好写一个可跟踪 R函数,该函数可以 分解矩阵直到特定的列/行并返回中间结果; 从中间结果继续分解到另一列/行或末尾. 此功能对于教育和调试目的都是有用的.教育的好处显 ..
发布时间:2020-05-07 18:45:11 其他开发

评估LightFM推荐模型

我一直在玩弄 lightfm 相当长的一段时间,发现生成它真的很有用建议.但是,我想知道两个主要问题. 来评估LightFM模型中的情况下建议的等级关系,应该我更多地依赖于或其他提供评价指标,如?与其他指标相比,在什么情况下我应该专注于改善我的precision@k?还是它们高度相关?这意味着如果我设法提高precision@k得分,其他指标也会随之而来,对吗? 您如何解释使用WARP ..

Python非负矩阵分解可同时处理零和缺失数据吗?

我正在寻找一个具有python接口的NMF实现,它可以处理丢失的数据和零. 在启动分解之前,我不想插入缺失的值,我希望在最小化函数中忽略它们. 似乎scikit-learn,nimfa,graphlab和mahout都没有提出这样的选择. 谢谢! 解决方案 使用此 Matlab至python代码转换表我能够从 Matlab工具箱库中重写NMF. 我不得不分解稀疏度为0. ..

使用置换矩阵稀疏矩阵的Cholesky分解

我感兴趣的大型稀疏矩阵的Cholesky分解。时遇到的问题是,乔列斯基因素不一定稀疏(就像两个稀疏矩阵的乘积不一定是稀疏)。 例如与非零点仅沿着第一行,第一列,和对角线乔列斯基因子的矩阵有100%的填充式(下和上三角形是100%密实)。在下面的灰色图像是非零和白色是零。 一个解决方案,我知道是要找到一个置换的 P 的基质和做的Cholesky分解的 P T AP 的。例如具有相同的基质通过 ..
发布时间:2015-11-30 15:35:27 C/C++