我正在使用Sklearn和GPflow执行 PCA 分析。我注意到两个库返回的输出不匹配。
请参阅下面的示例代码片段-
import numpy as np
from gpflow.models import PCA_reduce
from sklearn.decomposition import PCA
X = np.random.random((100, 10))
for n in range(1, 6):
X1 = PCA(n_components=n).fit_transform(X)
X2 = PCA_reduce(X, n)
print('[n=%d] allclose=%s' % (n, np.allclose(X1, X2)))
下面是输出 -
[n=1] allclose=True
[n=2] allclose=False
[n=3] allclose=False
[n=4] allclose=False
[n=5] allclose=False
它仅在主成分数为 1 时匹配。为什么会出现这种行为?