gpt4 book ai didi

python - 如何使用 PCA 和 scikit-learn 进行标准化

转载 作者:太空狗 更新时间:2023-10-29 20:38:43 24 4
gpt4 key购买 nike

让我保持简短。基本上我想知道的是:我应该这样做吗,

pca.fit(normalize(x))
new=pca.transform(normalize(x))

或者这个

pca.fit(normalize(x))
new=pca.transform(x)

我知道我们应该在使用 PCA 之前对我们的数据进行归一化,但是上面哪一个过程对于 sklearn 是正确的?

最佳答案

通常,您会希望使用第一个选项。

您的规范化将您的数据放置在 PCA 看到的新空间中,其转换基本上期望数据位于同一空间中。

Scikit-learn 提供的工具可通过在管道中串联估算器来透明且方便地执行此操作。尝试:

from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.pipeline import Pipeline

import numpy as np

data = np.random.randn(20, 40)

pipeline = Pipeline([('scaling', StandardScaler()), ('pca', PCA(n_components=5))])

pipeline.fit_transform(data)

然后,前置缩放器将始终在数据转到 PCA 对象之前将其转换应用于数据。

正如@larsmans 指出的那样,您可能希望使用 sklearn.preprocessing.Normalizer 而不是 StandardScaler,或者类似地,从 中删除均值居中StandardScaler 通过传递关键字参数 with_mean=False

关于python - 如何使用 PCA 和 scikit-learn 进行标准化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25475465/

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