问题标签 [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的问题
我经历了 jama 和 colt(我在 java 中编码)。他们都希望我使用数组,使得行数多于列数。
但是在潜在语义分析(LSA)的情况下,我有 5 本书,总共有 1000 多个单词。当我使用术语文档矩阵时,我得到一个 5*1000 矩阵。
由于这不起作用,我被迫转置矩阵。在转置时,我使用 1000 * 5 。使用 1000*5 当我执行 svd 时,我得到一个 5*5 的 S 矩阵。为了执行降维,这个 5*5 矩阵看起来很小。
可以做什么?
search-engine - 潜在语义分析在开发搜索引擎中的作用是什么?
我正在尝试为我最后一年的项目开发一个以音乐为中心的搜索引擎。我一直在研究潜在语义分析及其在互联网上的工作原理。我无法理解 LSI 在整个搜索引擎系统中的确切位置。是否应该在网络爬虫完成网页查找后使用?
java - 我们如何决定潜在语义分析的维数?
我最近一直在研究潜在语义分析。我通过使用 Jama 包在 java 中实现了它。
这是代码:
但是我们如何确定维数呢?有没有一种方法来确定系统应该减少到的维数以获得最佳结果?对于 LSA 的有效性能,我们还考虑了哪些其他参数?
machine-learning - PCA 或 SVD 在机器学习中的重要性
一直以来(特别是在 Netflix 比赛中),我总是遇到这个博客(或排行榜论坛),他们提到如何通过对数据应用简单的 SVD 步骤来帮助他们减少数据的稀疏性,或者总体上提高算法的性能手。我试图思考(很久以来),但我无法猜测为什么会这样。一般来说,我手头的数据非常嘈杂(这也是大数据的有趣部分),然后我知道一些基本的特征缩放的东西,比如对数转换的东西,平均归一化。但是像 SVD 这样的东西有什么帮助。所以假设我有一个巨大的用户评分电影矩阵......然后在这个矩阵中,我实现了一些版本的推荐系统(比如协同过滤):
它有什么帮助
c++ - 如何比较不同维数的点?
我有一个不同维度的数据点,我想在它们之间进行比较,以便我可以删除冗余点。我试图通过使用 PCA 来制作相同维度的点,但问题是 PCA 减少了维度,但是我失去了每个维度的含义,因为结果点与我拥有的点不同,所以我想知道是否有任何其他方式。换句话说,我想知道是否有任何方法可以帮助我比较不同维数的点。
java - Jama getS 给出异常
我正在将 SVD 应用于我已经创建的术语文档矩阵。矩阵是以下形式的双精度数组:
公共静态双[][] tdidf;
tdidf = new double[listOfFiles.length][keywordList.size()];
但是当我使用苹果 svd 时:
公共无效计算SVD()
{
矩阵A =新矩阵(tdidf);奇异值分解 svd = A.svd();
矩阵 U = svd.getU();
矩阵 S = svd.getS();
}
我收到一个错误:
线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 53
at Jama.SingularValueDecomposition.getS(SingularValueDecomposition.java:511)
at TDIDF_Matrix.computeSVD(TDIDF_Matrix.java:119)
at Jama.main(Jama.java:191)
在计算 SVD 之前我需要转置 A 吗?
python - 如何确定比例因子以使协方差矩阵的第一个元素为 1?
我有需要居中和缩放的数据,以便以原点为中心。然后需要旋转数据,使最大方差的方向在 x 轴上。然后计算数据的平均值和协方差。我需要协方差矩阵的第一个元素为 1。我认为这是通过调整比例因子来完成的,但我无法弄清楚比例因子应该是什么。
为了使数据居中,我去掉了平均值,为了旋转我使用 SVD,但缩放仍然是我的问题。
以下是norm的均值和 cov 结果示例(测试用例使用 res)。
除了协方差矩阵的第一个元素,所有值都无关紧要,它必须是一个。
我试过到处找,找不到答案。任何帮助,将不胜感激。
c++ - 在 OpenCV 中将 SVD 应用于 YCbCr 图像
我正在尝试将图像水印到视频序列中。该过程需要将帧分解为 SVD,我试图使用下面的部分代码来实现。第 47 行的 SVD 构造函数因分段错误而失败。gdb 报告以下错误:
“程序收到信号 SIGSEGV,分段错误。来自 /usr/lib/liblapack.so.3gf 的 dlange_ () 中的 0xb5d31ada”
java - 在 Java 中为 LSI 实现创建术语文档矩阵
我正在使用向量空间模型做一个搜索引擎项目,我需要为其创建一个术语文档矩阵,然后在其上应用 SVD。
我应该将术语作为行并将文档作为列吗?
我在java中做它应该是这样的:
计数[keywordList.size()][listOfFilesinCorpus.length];
还是应该反过来?我需要将此二维数组传递给 apache commons math:
RealMatrix A = Array2DRowRealMatrix(TDM) ;
其中 TDM 是术语文档矩阵。
我需要这些术语作为维度,然后我将比较向量空间中的文档。请帮忙,谢谢。
c++ - 在OpenCV中乘以矩阵的SVD分量
我将 SVD 应用于 CV_32FC1 cvMat 并修改了“u”组件中的一些值。现在我试图将'u、'w'和'vt'分量相乘以获得单个矩阵A。但是OpenCV无法将矩阵相乘并出现以下错误。
当我检查 SVD 对象中的矩阵类型时,它们的 type = 20 似乎与任何默认矩阵类型都不匹配。