假设我是这样用sklearns做PCA的sklearn.decomposition.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]
?在
您在代码中获得的
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]
。在相关问题 更多 >
编程相关推荐