【发布时间】:2018-07-09 02:42:56
【问题描述】:
MinMaxScaler 和标准缩放器有什么区别。
MMS= MinMaxScaler(feature_range = (0, 1))(在程序1中使用)
sc = StandardScaler()(在另一个程序中,他们使用标准缩放器而不是 minMaxScaler)
【问题讨论】:
标签: python data-science
MinMaxScaler 和标准缩放器有什么区别。
MMS= MinMaxScaler(feature_range = (0, 1))(在程序1中使用)
sc = StandardScaler()(在另一个程序中,他们使用标准缩放器而不是 minMaxScaler)
【问题讨论】:
标签: python data-science
MinMaxScaler(feature_range = (0, 1)) 将在 [0,1] 范围内按比例转换列中的每个值。使用它作为转换特征的第一个缩放器选择,因为它将保留数据集的形状(无失真)。
StandardScaler() 会将列中的每个值转换为均值 0 和标准差 1 左右的范围,即,每个值将通过减去均值并除以标准差来归一化。如果您知道数据分布正常,请使用 StandardScaler。
如果有异常值,请使用RobustScaler()。或者,您可以删除异常值并使用上述两种缩放器中的任何一种(选择取决于数据是否正态分布)
补充说明:如果在train_test_split之前使用scaler,会发生数据泄露。在 train_test_split 之后使用缩放器
【讨论】:
StandardScaler删除均值并将数据缩放为单位方差。 但是,异常值在计算经验值时会产生影响 缩小特征范围的均值和标准差 值如下左图所示。特别注意 因为每个特征上的异常值有不同的量级, 转换后的数据在每个特征上的分布非常不同:大多数 的数据位于转换后的收入中位数的 [-2, 4] 范围内 特征,而相同的数据被压缩在较小的 [-0.2, 0.2] 转换后的住户数范围。因此,StandardScaler 不能保证平衡的特征缩放 异常值的存在。
MinMaxScaler重新调整数据集,使所有特征值都在 范围 [0, 1] 如下右图所示。然而,这 缩放压缩窄范围 [0, 0.005] 内的所有内点 转换的家庭数量。
【讨论】:
当数值输入变量缩放到标准范围时,许多机器学习算法的性能会更好。 缩放数据意味着它有助于规范化特定范围内的数据。
当使用 MinMaxScaler 时,它也称为 Normalization,它转换 (0 到 1) 范围内的所有值 公式为 x = [(value - min)/(Max- Min)]
StandardScaler 属于标准化,其值范围在(-3 到 +3)之间 公式为 z = [(x - x.mean)/Std_deviation]
【讨论】: