首页 > 解决方案 > 我可以标准化我的 PCA 应用计数向量吗?

问题描述

我已经申请CountVectorizer()了我的X_train,它返回了一个稀疏矩阵。

通常如果我们想标准化稀疏矩阵,我们传入with_mean=False参数。

scaler = StandardScaler(with_mean=False)
X_train = scaler.fit_transform()

但就我而言,在我应用 CountVectorizer 之后,我X_train还执行了 PCA(TruncatedSVD) 以减小尺寸。现在我的数据不是稀疏矩阵。

那么现在可以StandardScaler()不通过就直接申请with_mean=False (i.e with_mean=True)吗?

标签: pythonmachine-learningscikit-learnpca

解决方案


如果您查看with_mean参数的作用,您会发现它只是在缩放之前将您的数据居中。您不将稀疏矩阵居中的原因是,当您尝试将稀疏矩阵居中时,它将转换为密集矩阵并占用更多内存,从而首先破坏其稀疏性。

执行 PCA 后,您的数据已减小维度,现在可以在缩放之前居中。所以是的,你可以StandardScaler()直接申请。


推荐阅读