问题标签 [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 回答
3538 浏览

r - 使用 Hotelling 的 T2 作为置信区间的 R PCA 图

prcomp对于我的测试数据,我使用该函数计算了前两个主成分。然后我使用 plot 函数绘制了前 2 个分量。

我现在想使用 Hotelling 的 T2 统计量在表示 95% 置信区间的数据周围放置一个椭圆。

SensoMineR特别是panellipse功能似乎是我正在寻找的。但是,我的 R 知识仍然非常有限,因此我想知道您是否可以为我指出正确的方向来构建这样的置信区间。

非常感谢!杰基

0 投票
2 回答
7108 浏览

r - 如何在 R 中向 PCA 图中添加多个置信椭圆?

一般来说,我对 R 和统计数据非常陌生,并且在向 PCA 图添加多个置信椭圆时遇到了麻烦。

我的兴趣是用 95% 的置信椭圆突出 PCA 图中的潜在分组/集群。我尝试在 R 中使用 dataEllipse 函数,但是我无法弄清楚如何将具有不同中心的多个椭圆添加到 PCA 图(中心将位于似乎包含集群的各个点,在这种情况下是石源和石工具可能来自该来源)。

感谢您对此的任何帮助!{

0 投票
2 回答
41684 浏览

r - 即使允许使用 NA,R 函数 prcomp 也会因 NA 的值而失败

我正在使用该函数prcomp来计算前两个主成分。但是,我的数据有一些 NA 值,因此该函数会引发错误。即使在帮助文件中提到了 na.action 定义似乎也不起作用?prcomp

这是我的例子:

我正在为 Mac OS X 使用最新的 R 版本 2.15.1。

任何人都可以看到prcomp失败的原因吗?

这是我的新示例:

是否可以在 PC1 和 PC2 中保留第 5 行?在我的真实数据集中,我当然有超过两列的变量,只有其中一些丢失了,我不想丢失隐藏在其他值中的剩余信息!

0 投票
1 回答
597 浏览

python - python中的PCA并将前2个组件相互绘制

我试图在矩阵 (C) 上执行 PCA,其中每一列代表不同的时间点,每一行代表一个特征,我试图找到顶部的主成分并将它们相互绘制。我正在使用 mdp 模块,如果该模块返回矩阵,其中每一行代表一个主成分,其中最重要的成分按降序排列,我会感到困惑。

谢谢!

0 投票
1 回答
1158 浏览

dataset - PCA降低数据集维数的简单解释

我知道PCA 不会告诉您数据集的哪些特征最重要,而是哪些特征组合保持最大差异。

您如何利用 PCA 旋转数据集以使其沿第一维具有最大方差、沿第二维具有最大方差等这一事实来降低数据集的维数?

我的意思是,更深入地说,前 N 个特征向量如何用于将特征向量转换为保持大部分方差的低维表示?

0 投票
1 回答
1142 浏览

matlab - 如何对非常大的数据集进行潜在语义分析

我正在尝试对一个非常大的数据集(大约 50,000 个文档和超过 300,000 个单词/术语)运行 LSA 或主成分分析,以降低维度,以便我可以在二维中绘制文档。

我在 Python 和 MATLAB 中尝试过,但由于数据集的体积,我的系统在任一实例中都内存不足并崩溃。有谁知道我可以如何减少负载,或者做某种可以更快更有效地运行的近似 LSA/PCA?我的总体目标是在 300k 单词上进行大幅降维。

0 投票
1 回答
8369 浏览

python - 带有openCV的特征脸

我刚刚认出了一些面孔cv2.createEigenFaceRecognizer。但我想知道输入面与计算出的特征面有多少相似之处。这个想法是您可以重新识别不在数据库中的人。

编辑:

例如:我在模型上训练了 A、B 和 C 面,然后我看到 C 和 D 面。我希望能够区分 C 面和 D 面。

谢谢你!

0 投票
1 回答
844 浏览

python - PCA 跨 numpy 3 维数组中的一组空间网格...特征向量排序?

我很困惑试图在一组已读入 numpy 数组的空间网格上运行 PCA。作为数组,它们看起来像这样,其中 mdata[0] 表示单个网格中的行和列的集合,每个值代表一个网格单元:

然后我将数组展平,以便可以在整个集合中正确计算协方差,因此输入数组如下所示:

我需要生成一组代表主成分的输出数组(最终转换回网格)。输出数组是通过将特征向量与输入网格集(即输入数组)上的每个数组元素相乘并将它们加在一起而产生的。每个输出网格将代表一个主成分,按解释方差的降序排列。

所以最终的方程看起来像这样:

我的问题是......通过 numpy.linalg.eig 生成特征向量后,我不确定它们的顺序。evec[0] 中的值(见下面的输出)是否代表我应该用来计算第一个主成分输出数组的特征向量?或者我应该从底行开始(即,下面的 evec[11])?或者特征向量是否在 numpy.linalg.eig 的输出中按列排列?

感谢您的帮助,对于本文的篇幅,我深表歉意。

这是我正在使用的一些示例代码,以及结果输出:

0 投票
1 回答
9587 浏览

python - 计算协方差矩阵 - numpy.cov 和 numpy.dot 之间的区别?

我正在使用 3 维 numpy 数组,我最终将在其上执行 PCA。我首先将 3-D 数组展平为 2-D,以便我可以计算协方差(然后是特征值和特征向量)。

在计算协方差矩阵时,我使用 numpy.cov 与 numpy.dot 得到不同的结果。如果我的二维数组是 (5,9),我希望得到一个 5x5(即 NxN)协方差矩阵。这就是我使用 numpy.dot 得到的结果。使用 numpy.cov,我最终得到一个 9x9 的协方差矩阵。这不符合我需要的形状,但老实说我不知道​​哪个是正确的。在我研究过的示例中,我已经看到了两种用于计算协方差的方法。

如果我通过 numpy.linalg.eig 计算携带 numpy.dot 与 numpy.cov,我显然会得到不同的答案(全部打印在示例输出下面)。所以,在这一点上,我很困惑哪种方法是正确的,或者我可能哪里出错了。

这是带有输出的测试代码。谢谢你的帮助。

0 投票
1 回答
1251 浏览

r - 在R中应用PCA后如何重建原始数据矩阵

prcomp我已经使用R中的函数对我的数据应用了 PCA 。

此函数返回以下内容:

  1. 变化
  2. 旋转矩阵
  3. 标准差
  4. 分数 (X)

我的问题是:例如,在选择两个主成分后,如何重建数据的简化版本?