MinMaxScaler和标准缩放器有什么区别。
MMS= MinMaxScaler(feature_range = (0, 1))
(在Program1中使用)
sc = StandardScaler()
(在另一个程序中,他们使用标准缩放器而不是minMaxScaler)
答案 0 :(得分:7)
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]