MaxAbsScaler

El escalador sklearn.preprocessing.MaxAbsScaler escala y desplaza cada característica individualmente de forma que el valor máximo absoluto en todas ellas sea 1.

Apliquémoslo al mismo array de la sección anterior:

data = np.array([5, 4, -1, -60]).reshape(-1, 1)
data
array([[  5],
       [  4],
       [ -1],
       [-60]])

Importamos el escalador, lo instanciamos y lo aplicamos al array:

from sklearn.preprocessing import MaxAbsScaler
scaler = MaxAbsScaler()
scaler.fit_transform(data)
array([[ 0.08333333],
       [ 0.06666667],
       [-0.01666667],
       [-1.        ]])

Comprobamos que el valor máximo absoluto es 1, pero obsérvese que se ha preservado la información del signo de los datos.

Apliquémoslo al dataset Iris (dataset en el que todos los datos son positivos):

transformed_iris = scaler.fit_transform(iris.iloc[:, :4])
transformed_iris = pd.DataFrame(transformed_iris)
transformed_iris["species"] = iris["species"]
transformed_iris.columns = iris.columns

Visualicemos los primeros registros del dataset transformado:

transformed_iris.head()

MaxAbsScaler

Y la información estadística asociada:

transformed_iris.describe()

MaxAbsScaler

Comprobamos cómo el valor máximo es 1, pero el valor mínimo no es cero (es decir, no se han centrado y movido los datos).