我可以在 4 张量上运行 PCA 吗?

机器算法验证 机器学习 主成分分析 scikit-学习
2022-03-23 10:22:40

我有一个存储在 numpy 数组中的 4D 张量数据集。我想对其进行 PCA,但 sklearn.PCA 只接受 dim <= 2 的数组。我知道我可以重塑数组,但这不会丢失信息或导致 PCA 适合错误的向量吗?

3个回答

实际上有一些 PCA 对高阶张量的推广:

PCA 不适用于 4D 张量,但您可以使用自动编码器。

请注意,PCA 将采用 2D 数据集并减少其中的列数(例如 100 列到 10 列)。

对于 4D 数据集,您可以使用自动编码器将其缩减为具有更少“列”的 4D 数据集或将其缩减为 3D 数据集。

标题中问题的答案是肯定的,您可以对由具有任意数量轴的坐标系描述的任何数据集执行 PCA。结果是一组新的轴,称为主坐标。PCA 产生与原始轴一样多的 PC,但新坐标系具有不同的属性,例如:

  • 主成分根据它们占多少可变性进行排名,第一个 PC 是沿自身具有最大可变性的轴;
  • 根据定义,所有主成分相互正交。

是关于 PCA 的作用以及它如何工作的非常好的交互式解释。如需进一步参考,请参见此处此处

正文中的细节似乎是指一个特定的程序(我猜是Python),这让我觉得这个问题可能更适合Stack Overflow。