3 回答

TA贡献1820条经验 获得超2个赞
从ScikitLearn网站:
StandardScaler
去除均值并将数据缩放为单位方差。但是,异常值在计算经验均值和标准差时会产生影响,这会缩小特征值的范围,如下图左图所示。特别要注意的是,由于每个要素的离群值具有不同的大小,因此每个要素上转换后的数据的散布是非常不同的:对于转换后的中位数收入要素,大多数数据位于[-2,4]范围内,而相同对于转换后的家庭数,数据被压缩在较小的[-0.2,0.2]范围内。因此,在存在异常值的情况下,StandardScaler无法保证平衡的要素比例。
MinMaxScaler
重新缩放数据集,以使所有特征值都在[0,1]范围内,如下右面板所示。但是,对于换算后的家庭数,此缩放将所有inlier压缩在较窄的范围[0,0.005]中。

TA贡献1789条经验 获得超10个赞
MinMaxScaler(feature_range = (0, 1))
将在[0,1]范围内按比例转换列中的每个值。将其用作变换要素的第一个缩放器选择,因为它将保留数据集的形状(无失真)。
StandardScaler()
会将列中的每个值转换为均值0和标准偏差1左右的范围,即,每个值将通过减去均值并除以标准差进行标准化。如果您知道数据分发是正常的,请使用StandardScaler。
如果存在异常值,请使用RobustScaler()
。或者,您可以删除异常值并使用以上两个定标器之一(选择取决于数据是否正态分布)
附加说明:如果在train_test_split之前使用了定标器,则会发生数据泄漏。在train_test_split之后使用定标器

TA贡献1815条经验 获得超6个赞
当数字输入变量缩放到标准范围时,许多机器学习算法的性能会更好。缩放数据意味着它有助于在特定范围内规范化数据。
当使用MinMaxScaler时,也称为归一化,它将所有(0到1)范围内的值转换为x = [((value-min)/(Max- Min)]]
StandardScaler处于标准化之下,其值范围介于(-3至+3)之间,公式为z = [(x-x.mean)/ Std_deviation]
添加回答
举报