问题标签 [svd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 维基百科定义的 Java SVD
我正在寻找一个执行奇异值分解的java库,如维基百科中所述:从矩阵A(m X n)得到A = U * S * V',其中U是mxm,S是mxn,V是nx n。
任何人都可以帮助我吗?
请不要回答 colt 或 jama,因为他们对 svd 的定义与维基百科的不同。事实上,colt 返回 A = U*S*V',其中 U 是 mxn,S 是 nxn,V 是 nx n。
Alternativley 如何使用 colt 计算维基百科的 svd?
谢谢
java - 在大矩阵上用java做PCA
我有一个非常大的矩阵(大约 500000 * 20000),其中包含我将使用 pca 分析的数据。为此,我使用 ParallelColt 库,但都使用奇异值分解和特征值分解来获得协方差矩阵的特征向量和特征值。但是这些方法浪费了堆,我得到“OutOfMemory”错误......
同样使用 SparseDoubleMatrix2D (数据非常稀疏)错误仍然存在,所以我问你:我该如何解决这个问题?
换图书馆?
recommendation-engine - 将内容信息与基于分解的协同过滤集成
我正在阅读 CF 中的一些论文,并注意到大多数最先进的方法仅基于评级矩阵上的不同分解方法。我想知道是否有一些将内容信息(例如用户特征和项目特征)结合到分解中的代表性作品。有任何想法吗?
matlab - 有效地获得最佳逼近的零空间或一维空间
我一直在使用 svd 计算来做到这一点
其中我使用 A 的最后一列作为我的零空间近似值。由于 A 变得非常大,我意识到这会减慢我的计算速度。
对于 null(A),文档似乎表明它无论如何都会执行 SVD。此外,如果 A 是满级,它也不起作用。SVD 通过找到最大的奇异值来进行,然后是下一个,依此类推,而我只需要最小的。
这似乎是一个很大的瓶颈。将非常感谢这方面的帮助。我正在使用 MATLAB。
谢谢。
python - 使用 scipy 进行 SVD 时出现内存错误
我尝试使用 LSI 生成向量来表示文档。我在 Scipy 库中使用 svd 包。但是程序会抛出内存错误。我的矩阵大小是 100*13057。这对我的 8G RAM 来说太大了吗?
我在stackflow中搜索了这个问题。有人说我只需要在我的 64 位操作系统上安装 64 位 Python。(现在,我在 64 位操作系统上有 32 位 Python)。但是重新安装所有库太简单了。另一种意见是转换稀疏矩阵。
那么大家对这个问题有想法吗?谢谢!
Concole 中的消息如下:
scipy - 为什么 scipy.sparse.linalg.svds 返回 ValueError?
有谁知道如何使用scipy.sparse包在稀疏矩阵上计算 SVD?
我知道我需要使用scipy.sparse.linalg.svds()。
但我做了如下:
我有这个例外:
recommendation-engine - 如何使用增量 SVD 推荐系统创建推荐
我正在测试一个根据 Simon Funk 算法构建的推荐系统。(由 Timely Dev 编写。http://www.timelydevelopment.com/demos/NetflixPrize.aspx)
问题是,所有增量 SVD 算法都试图预测 user_id 和 movie_id 的评分。但在实际系统中,这应该为活动用户生成一个新项目列表。我看到有些人在 Incremental SVD 之后使用了 kNN,但是如果我没有遗漏一些东西,如果我在通过 Incremental SVD 创建模型之后使用 kNN,我会失去所有的性能提升。
任何人都对增量 SVD/Simon Funk 方法有任何经验,并告诉我如何生成新的推荐项目列表?
java - LSA - 找到 SVD 后的步骤
从早上开始,我已经阅读了很多教程。我的问题涉及找到两个文档之间的相似性。为此,我期待在 java 中使用 LSA。
我了解术语文档矩阵的创建,然后将 SVD(维数减少)应用于它。结果获得了 3 个矩阵。这听起来可能很愚蠢,但我已经坚持了很长一段时间。现在,如果我必须找到两个文档之间的相似性,我该怎么办?
java - 带有 JAMA 的 Java SVD 或其他
我有一堆点,我需要最合适的线。我正在使用 JAMA,但我不知道为什么,有些东西不起作用。可能是我不明白它是如何工作的。我有一个 Nx3 矩阵(这是 JAMA svd 支持的),我从 Svd 获得了正确的矩阵 V。我需要的向量是对应于最大奇异值的正确奇异向量(行或列?)。这个向量应该代表主方向。
每个向量都应该有 y 作为最大的正值,x 可以是正的也可以是负的,z 应该是负的。但有时我得到的向量的 y 值为负,或者无论如何它指向错误的方向。
我的点云非常规则,几乎都沿着 y 轴定位(z 小且为负)。所以主要方向应该很容易找到。但它仍然无法正常工作。
在这种情况下,我得到了右矩阵 V 的行向量(我也尝试了列向量)。我已经从“pointSet”中减去了质心。
我想也许我没有考虑什么。Idk 也许我应该使用另一种技术或另一个库。