问题标签 [pca]

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.

0 投票
1 回答
7931 浏览

r - 如何为 PCoA 的散点图着色

所以我对此很陌生。我需要在以下数据矩阵上运行 PCoA。我能够使用 ADE4、labdsv、Ginko、Aabel 软件运行我的分析。困扰我的是如何对散点图中的标签进行颜色编码。我的矩阵是按顺序排列的存在/不存在矩阵:

我想要的是用红色、蓝色和所有黑色来表示A1A2和。任何帮助将不胜感激。A3B1B2E

0 投票
3 回答
2060 浏览

java - 在大矩阵上用java做PCA

我有一个非常大的矩阵(大约 500000 * 20000),其中包含我将使用 pca 分析的数据。为此,我使用 ParallelColt 库,但都使用奇异值分解和特征值分解来获得协方差矩阵的特征向量和特征值。但是这些方法浪费了堆,我得到“OutOfMemory”错误......

同样使用 SparseDoubleMatrix2D (数据非常稀疏)错误仍然存​​在,所以我问你:我该如何解决这个问题?

换图书馆?

0 投票
3 回答
2505 浏览

r - 回归和 PCA 的视觉比较

我正在尝试完善一种比较回归和 PCA 的方法,受博客Cerebral Mastication的启发,该博客也已从不同角度对SO进行了讨论。在我忘记之前,非常感谢 JD Long 和 Josh Ulrich 的大部分核心内容。我将在下学期的课程中使用它。对不起,这很长!

更新:我发现了一种几乎可以工作的不同方法(如果可以的话,请修复它!)。我把它贴在了底部。比我想出的更聪明、更短的方法!

我基本上遵循了之前的方案:生成随机数据,找出最佳拟合线,绘制残差。这显示在下面的第二个代码块中。但我也挖掘并编写了一些函数来绘制垂直于通过随机点(本例中的数据点)的线的线。我认为这些工作正常,它们显示在 First Code Chunk 中以及它们工作的证明。

现在,第二个代码块使用与@JDLong 相同的流程显示了整个操作,我正在添加结果图的图像。黑色数据,红色是带有残差粉红色的回归,蓝色是第一个 PC,浅蓝色应该是法线,但显然不是。First Code Chunk 中绘制这些法线的函数看起来不错,但演示中有些地方不对:我想我一定是误解了某些东西或传递了错误的值。我的法线是水平的,这似乎是一个有用的线索(但到目前为止,对我来说不是)。谁能看到这里有什么问题?

谢谢,这个问题困扰了我一段时间... 绘图显示问题

第一个代码块(绘制法线并证明它们有效的功能):

第二个代码块(绘制演示):

############ 更新

Vincent Zoonekynd 的页面上,我几乎完全找到了我想要的东西。但是,它并不完全有效(显然曾经有效)。这是该站点的代码摘录,它绘制了通过垂直轴反射的第一台 PC 的法线:

结果如下:

在此处输入图像描述

0 投票
1 回答
8396 浏览

r - 当协方差矩阵为零时,如何在R中使用princomp()函数?

在 R 中使用princomp()函数时,遇到以下错误:"covariance matrix is not non-negative definite"

我认为,这是由于协方差矩阵中的某些值为零(实际上接近零,但在舍入期间变为零)。

当协方差矩阵包含零时,是否可以继续使用 PCA?

[仅供参考:获取协方差矩阵是princomp()调用中的中间步骤。可以从这里下载重现此错误的数据文件 - http://tinyurl.com/6rtxrc3]

0 投票
2 回答
12170 浏览

python - Python 中的 OpenCV PCA 计算

我正在通过 OpenCV(在 Python 中)加载一组大小为 128x128 的测试图像,将它们重塑为向量(1、128x128)并将它们全部放在一个矩阵中以计算 PCA。我正在使用新的 cv2 库...

编码:

它在 PCA 部分总是失败(我测试了图像加载和所有,结果矩阵应该是这样的)......我得到的错误是:

文件“main.py”,第 22 行,在

均值,特征向量 = cv.PCACompute(matrix_test, np.mean(matri_test, axis=0))

cv2.error: /path/to/OpenCV-2.3.1/modules/core/src/matmul.cpp:2781: 错误: (-215) _mean.size() == mean_sz in function operator()

0 投票
2 回答
5569 浏览

algorithm - PCA:查找协方差矩阵的特征值:求解 N 次多项式

如果我理解正确的话,PCA 的原理很简单:

  1. 计算数据向量的协方差矩阵C
  2. 求解 det( C - e***I) = 0,求矩阵 **C的特征值e
  3. 计算矩阵C的特征向量(根据这些特征值)。

第一:这个描述正确吗?

第二:用于机器求解多项式方程 det( C - e***I) = 0 的任何算法?我知道这是一个一般数学问题(求 **n 次多项式的根)。

第三: C/C++中有没有简单的PCA实现

非常感谢。

0 投票
1 回答
3047 浏览

r - R中带有凸多边形的主成分分析双图

我使用以下代码制作了附加的双图:

这会生成一个双图,显示 x 和 Y 的轴以及 10 个数据点中的每一个。

假设这 10 个数据点由 2 个不同的组组成(一组 5 个,另一组 5 个)。如何在每个组周围生成具有最小凸多边形的双图,以显示 2 个组的划分?

0 投票
1 回答
2297 浏览

android - PCACompute Opencv 返回特征向量 = 0

Android Opencv2.3.1 中的 PCACompute 有这个问题,因为当我调用 PCACompute 时,我的特征向量都是 0。所以,我为每个人拍摄 10 张照片,并将其保存到 100X100 的垫子中。之后,我使用以下代码将我的 100X100 Mat 转换为一个 Mat 1X10000:

之后,当我拍摄 10 张照片时,我使用以下代码将所有照片的垫子插入一张垫子:

之后,我使用以下代码调用 PCACompute:`

因此,datiOriginali 是 10 行和 10000 列的输入 Mat,均值和特征向量是输出矩阵。均值矩阵给我一个结果,但特征向量给我全0。你能帮我解决这个问题吗?提前致谢。MArco

0 投票
0 回答
1539 浏览

android - 如何在 OpenCV 中使用特征脸值执行人脸识别?

PCACompute在使用如下所示的 OpenCV函数后,我得到了一个Mat代表均值和一个Mat特征向量。

datiOriginali是我的输入Matmean是平均值Mateigenvectors是特征向量Mat

从那里,我使用了 PCAProject:

datiOriginali始终是输入Matmeaneigenvectors计算相同,PCACompute并且res是输出Mat

如何使用 eigenfaces 值执行人脸识别?我不知道如何计算如上所示计算的训练图像和新图像之间的欧几里得距离。

0 投票
1 回答
1439 浏览

android - PCA 识别 OpenCV 2.3

我对 opencv2.3 和 android 2.2 有问题:我有一组 10 张图像,我在其中拍摄面部,并使用 functin PCACompute 和 PCAProjet,我计算 PCA 的子空间并将图像投影到这个子空间中。
所以,我有带有特征向量的垫子、带有平均值的垫子和垫子结果。
我的问题是:如何使用新图像执行人脸识别?我必须比较哪些数据?特征值,特征向量?
我希望有人能帮助我。
提前致谢。
马可