

# MinMax Scaler

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


## Description

The MinMax scaler scales the given data set, so that all values will lie between a user specified range [min,max]. In case the user does not provide a specific minimum and maximum value for the scaling range, the MinMax scaler transforms the features of the input data set to lie in the [0,1] interval. Given a set of input data $x_1, x_2,… x_n$, with minimum value:

and maximum value:

The scaled data set $z_1, z_2,…,z_n$ will be:

where $\textit{min}$ and $\textit{max}$ are the user specified minimum and maximum values of the range to scale.

## Operations

`MinMaxScaler` is a `Transformer`. As such, it supports the `fit` and `transform` operation.

### Fit

MinMaxScaler is trained on all subtypes of `Vector` or `LabeledVector`:

*   `fit[T &lt;: Vector]: DataSet[T] =&gt; Unit`
*   `fit: DataSet[LabeledVector] =&gt; Unit`

### Transform

MinMaxScaler transforms all subtypes of `Vector` or `LabeledVector` into the respective type:

*   `transform[T &lt;: Vector]: DataSet[T] =&gt; DataSet[T]`
*   `transform: DataSet[LabeledVector] =&gt; DataSet[LabeledVector]`

## Parameters

The MinMax scaler implementation can be controlled by the following two parameters:

| Parameters | Description |
| --- | --- |
| **Min** | The minimum value of the range for the scaled data set. (Default value: **0.0**) |
| **Max** | The maximum value of the range for the scaled data set. (Default value: **1.0**) |

## Examples



```
// Create MinMax scaler transformer val minMaxscaler = MinMaxScaler()
  .setMin(-1.0)

// Obtain data set to be scaled val dataSet: DataSet[Vector] = ...

// Learn the minimum and maximum values of the training data minMaxscaler.fit(dataSet)

// Scale the provided data set to have min=-1.0 and max=1.0 val scaledDS = minMaxscaler.transform(dataSet)
```



