让我们说这就是我使用sklearns sklearn.decomposition.PCA
进行PCA的方式:
def doPCA(arr):
scaler = StandardScaler()
scaler.fit(arr)
arr =scaler.transform(arr)
pca =PCA(n_components=2)
X = pca.fit_transform(arr)
return X
我目前的理解是我得到一个长度相同的输出数组,但现在每个样本的维数为2。
现在,我感兴趣的是我的原始数组arr
中的值最终在PCA之后。
我的问题是:
我可以假设X[i]
对应arr[i]
吗?
答案 0 :(得分:2)
您在代码中X
获得的内容U[:, :n_components]*S[:n_components]
是第一个n_components
上的PCA加载数。要了解X[i]
与arr[i]
对应的原因,请让我们看看加载的含义。
<强>荷载强>
想象一下,特征向量是订单n_components
的新维度的基础向量。加载有助于定义每个数据点位于此新维度空间的位置。换句话说,原始数据从投影到缩小尺寸空间的完整特征空间指向。这些是线性组合的系数(np.dot(X, n_components)
),用于预测(标准化)组件的原始完整特征集。
因此,您可以假设X[i]
对应arr[i]
。