如何解决3D numpy 数组上的 PCA 实现
我有一个大小为 2240*5*16
的特征集。 2240 是样本数,5 表示通道数,16 表示提取的统计特征数,例如均值、方差等。
现在,我想申请 PCA
。但是,PCA
适用于二维数组。我应用了以下代码:
from sklearn.decomposition import PCA
pca = PCA(n_components=5)
pca.fit(features)
我收到以下错误。
ValueError: Found array with dim 3. Estimator expected <= 2.
它不支持 axis
参数。由于它仅适用于 2D,我如何在我的案例 (3D) 上使用它?有什么建议,如果我想将尺寸从 2240*5*16
减少到 2240*5*5
,请吗?
解决方法
我会遍历每个通道并分别进行 PCA。
import numpy as np
from sklearn.decomposition import PCA
X = np.random.rand(1000,5,10)
X_transform = np.zeros((X.shape[0],5))
for i in range(X.shape[1]):
pca = PCA(n_components=5)
f = pca.fit_transform(X[:,i,:])
X_transform[:,:] = f
print((X_transform.shape))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。