我有一个存储在 numpy 数组中的 4D 张量数据集。我想对其进行 PCA,但 sklearn.PCA 只接受 dim <= 2 的数组。我知道我可以重塑数组,但这不会丢失信息或导致 PCA 适合错误的向量吗?
我可以在 4 张量上运行 PCA 吗?
机器算法验证
机器学习
主成分分析
scikit-学习
2022-03-23 10:22:40
3个回答
实际上有一些 PCA 对高阶张量的推广:
- “高阶奇异值分解”中使用的塔克分解。
- PARAFAC aka CANDECOMP在某些方面是 Tucker 分解的特例。
- 另一个更新的变体使用张量序列分解。
PCA 不适用于 4D 张量,但您可以使用自动编码器。
请注意,PCA 将采用 2D 数据集并减少其中的列数(例如 100 列到 10 列)。
对于 4D 数据集,您可以使用自动编码器将其缩减为具有更少“列”的 4D 数据集或将其缩减为 3D 数据集。