标准缩放器和MinMaxScaler之间的区别

时间:2018-07-09 02:42:57

标签: python data-science

MinMaxScaler和标准缩放器有什么区别。

MMS= MinMaxScaler(feature_range = (0, 1))(在Program1中使用)

sc = StandardScaler()(在另一个程序中,他们使用标准缩放器而不是minMaxScaler)

3 个答案:

答案 0 :(得分:7)

来自ScikitLearn site

  

StandardScaler去除均值并将数据缩放为单位方差。   但是,离群值在计算经验值时会产生影响   均值和标准差会缩小特征范围   值如下左图所示。特别注意   因为每个要素的离群值具有不同的大小,所以   转换后的数据在每个要素上的分布是非常不同的:大多数   的数据位于转换后的中位数收入的[-2,4]范围内   功能,而相同的数据被压缩为较小的[-0.2,0.2]   转换的家庭数量范围。

     

因此,StandardScaler无法保证平衡的要素比例   离群值的存在。

     

MinMaxScaler重新缩放数据集,以使所有要素值都位于   范围[0,1],如下右面板所示。但是这个   缩放将所有inlier压缩在狭窄范围[0,0.005]中   转换的家庭数量。

答案 1 :(得分:2)

MinMaxScaler(feature_range = (0, 1))将在[0,1]范围内按比例转换列中的每个值。将其用作变换要素的第一个缩放器选择,因为它将保留数据集的形状(不失真)。

StandardScaler()会将列中的每个值转换为均值0和标准差1左右的范围,即,将每个值减去均值并除以标准差即可将其标准化。如果您知道数据分发是正常的,请使用StandardScaler。

如果存在异常值,请使用RobustScaler()。或者,您可以删除异常值并使用以上两个缩放器中的一个(选择取决于数据是否正态分布)

其他说明:如果在train_test_split之前使用了定标器,则会发生数据泄漏。在train_test_split之后使用定标器

答案 2 :(得分:2)

当数字输入变量缩放到标准范围时,许多机器学习算法的性能会更好。 缩放数据意味着有助于在特定范围内规范化数据。

使用MinMaxScaler时,也称为标准化,它将转换(0到1)范围内的所有值 公式是x = [(值-最小)/(最大-最小)]

StandardScaler处于标准化之下,其值范围在(-3至+3)之间 公式是z = [(x-x.mean)/ Std_deviation]