MinMaxScaler()
和 StandardScaler()
有什么区别?
mms = MinMaxScaler(feature_range = (0, 1))
(用于机器学习模型)
sc = StandardScaler()
(在另一个机器学习模型中使用标准缩放器而不是最小-最大缩放器)
MinMaxScaler()
和 StandardScaler()
有什么区别?
mms = MinMaxScaler(feature_range = (0, 1))
(用于机器学习模型)
sc = StandardScaler()
(在另一个机器学习模型中使用标准缩放器而不是最小-最大缩放器)
MinMaxScaler(feature_range = (0, 1))
会将列中的每个值按比例转换到范围 [0,1] 内。将其作为第一次转换特征的缩放器选择,因为它将保留数据集的形状(没有失真)。
StandardScaler()
会将列中的每个值转换为围绕平均值为0和标准差为1的范围内,即通过减去平均值并除以标准差来归一化每个值。如果您知道数据分布是正态分布,请使用 StandardScaler。
如果存在异常值,请使用 RobustScaler()
。或者您可以删除异常值并使用上述任意一个缩放器来进行转换(选择取决于数据是否呈正态分布)。
额外提示:如果在 train_test_split 之前使用缩放器,数据泄漏会发生。请在 train_test_split 之后使用缩放器。
StandardScaler
移除均值并将数据缩放到单位方差。然而,异常值对于计算经验均值和标准差有影响,这缩小了特征值的范围,如下图左侧所示。请注意,由于每个特征上的异常值具有不同的大小,因此转换后的数据在每个特征上的分布非常不同:对于转换后的中位数收入特征,大部分数据位于[-2,4]范围内,而相同的数据则被压缩在更小的[-0.2,0.2]范围内的转换后的家庭数量。因此,在存在异常值的情况下,
StandardScaler
不能保证平衡的特征比例。
MinMaxScaler
重新调整数据集,使得所有特征值都在[0,1]范围内,如下图右侧所示。但是,这种缩放将所有正常值压缩在转换后家庭数量的狭窄范围[0,0.005]内。
许多机器学习算法在输入数字变量被缩放到标准范围后表现更好。 对数据进行缩放意味着它有助于将数据规范化到特定范围内。
当使用MinMaxScaler时,它也被称为归一化,它将所有值转换到(0到1)的范围内. 公式是 x = [(value - min)/(Max- Min)]
StandardScaler属于标准化,其值范围为(-3到+3) 公式是 z = [(x - x.mean)/Std_deviation]