StandardScaler “with_std=False 或 True”和“with_mean=False 或 True”之间的差异

alv*_*ero 6 python decomposition pca scikit-learn

我正在尝试标准化一些数据,以便能够对其应用 PCA。我正在使用 sklearn.preprocessing.StandardScaler。我无法理解参数和(文档True)中使用或之间的区别。Falsewith_meanwith_std

有人可以给出更详细的解释吗?

mak*_*kis 5

我在此线程中提供了更多详细信息,但我也在这里解释一下。

\n

数据的标准化(每列/特征/变量)涉及以下方程:

\n

在此输入图像描述

\n
\n

解释:

\n

如果将with_mean和设置with_stdFalse,则均值\xce\xbc将设置为0std并且 为 1,假设列/特征来自正态高斯分布(均值为 0,标准差为 1)。

\n

如果将with_mean和设置with_std为,那么您实际上将使用数据的Truetrue\xce\xbc和。\xcf\x83这是最常见的方法。

\n


Wil*_*sem 3

标准缩放器通常用于将数据拟合为正态分布,然后计算Z 分数。这意味着首先计算数据的平均值 μ标准差 σ ,然后使用z = (x - μ) / σ计算Z 分数

通过设置with_meanwith_stdFalse我们分别将平均值 μ0和标准差 σ 设置为 1。如果两者都设置为,我们就可以计算出标准正态分布False的 Z 分数[wiki]

with_mean设置为的主要用例False是处理稀疏矩阵。稀疏矩阵包含大量的零,因此零的存储方式通常不使用(或很少)内存。如果我们拟合均值,然后计算 z 分数,几乎可以肯定所有零都将映射到非零值,从而使用(大量)内存。对于大型稀疏矩阵,这可能会导致内存错误:数据太大,内存无法再存储矩阵。通过设置μ=0,这意味着零值将映射到零。标准缩放器的结果是具有相同形状的稀疏矩阵。