sklearn的PCA实现是否保持输入顺序?

2024-09-26 22:50:44 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我是这样用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]?在


Tags: returndefcomponentstransform数组sklearnfitarr
1条回答
网友
1楼 · 发布于 2024-09-26 22:50:44

您在代码中获得的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]。在

相关问题 更多 >

    热门问题