最小最大值标准化通过对给定数据集进行缩放,使得所有值都落在指定的区间[min,max]内。如果用户没有指定区间的最大和最小值,则最小最大值标准化将会把输入特征缩放到[0,1]区间内。 给定输入数据集 $x_1, x_2,… x_n$ 的最小值为:
最大值为:
经过缩放的数据集 $z_1, z_2,…,z_n$ 为:
其中 $\textit{min}$ 与 $\textit{max}$ 是用户指定的最小值和最大值。
MinMaxScaler
是一个转换器(Transformer
),因此它支持拟合(fit
)与转换(transform
)两种操作。
MinMaxScaler 可以在所有Vector
或LabeledVector
的子类型上进行训练:
fit[T <: Vector]: DataSet[T] => Unit
fit: DataSet[LabeledVector] => Unit
MinMaxScaler 将 Vector
或 LabeledVector
的子类型数据集转换到对应的相同类型的数据集:
transform[T <: Vector]: DataSet[T] => DataSet[T]
transform: DataSet[LabeledVector] => DataSet[LabeledVector]
最小最大值标准化可由下列参数进行控制:
参数 | 描述 |
---|---|
Min |
目标缩放区间的最小值 (默认值:0.0) |
Max |
目标缩放区间的最大值 (默认值:1.0) |
// 创建最大最小值标准化转换器
val minMaxscaler = MinMaxScaler()
.setMin(-1.0)
// 获取需要标准化的数据集
val dataSet: DataSet[Vector] = ...
// 对训练集的最大最小值进行训练学习
minMaxscaler.fit(dataSet)
// 对提供的数据集进行缩放,最大值为 1.0 最小值为 -1.0
val scaledDS = minMaxscaler.transform(dataSet)