gpt4 book ai didi

scikit-learn - 具有 sklearn 差异的 PCA

转载 作者:行者123 更新时间:2023-12-04 08:43:59 25 4
gpt4 key购买 nike

我试图在非常特定的上下文中应用 PCA,但遇到了我无法解释的行为。
作为测试,我正在使用您可以在此处检索的文件数据运行以下代码:https://www.dropbox.com/s/vdnvxhmvbnssr34/test.npy?dl=0 (numpy 数组格式)。

from sklearn.decomposition import PCA
import numpy as np
test = np.load('test.npy')
pca = PCA()
X_proj = pca.fit_transform(test) ### Project in the basis of eigenvectors
proj = pca.inverse_transform(X_proj) ### Reconstruct vector
我的问题如下:因为我没有指定任何数量的组件,所以我应该在这里使用所有计算组件进行重构。因此,我希望我的输出项目与我的输入测试相同。但是一个快速的情节证明情况并非如此:
plt.figure()
plt.plot(test[0]-proj[0])
plt.show()
这里的图将显示投影和输入矩阵之间的一些大差异。
有没有人有想法或解释来帮助我理解为什么在我的情况下 proj 与 test 不同?

最佳答案

我检查了您的测试数据,发现以下内容:

mean = test.mean() # 1.9545972004854737e+24
std = test.std() # 9.610595443778275e+26
我将标准偏差解释为在某种意义上代表最小计数或报告值的不确定性。我的意思是,如果数值算法报告的答案是 a ,那么真正的答案应该在区间 [a - std, a + std] .这是因为数值算法本质上是不精确的。它们依赖于显然不能代表的浮点运算 实数在所有有荣耀。
所以如果我绘制:
plt.plot((test[0]-proj[0])/std)
plt.show()
我得到以下似乎更合理的情节。
Plot
您可能对绘图感兴趣 相对误差 以及。或者,您可以将数据标准化为 0 平均和 单位方差,然后 PCA 结果应该更准确。

关于scikit-learn - 具有 sklearn 差异的 PCA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64425522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com