StandardScaler#

Se aplica la transformación:

x_{*} = \frac{x - \text{mean}(x)}{\text{std}(x)}

  • Muchas técnicas suponen que los datos ya están estandarizados (RBF, SVM, …).

  • Cuando una característica tiene una varianza muy diferente de las restantes, afecta el aprendizaje del modelo, ya que domina la función objetivo.

[1]:
import seaborn as sns

penguins = sns.load_dataset("penguins")

data = penguins[["flipper_length_mm"]]
data = data.rename(columns={"flipper_length_mm": "original"})
[2]:
from sklearn.preprocessing import StandardScaler

standardScaler = StandardScaler(
    # -------------------------------------------------------------------------
    # If True, center the data before scaling.
    with_mean=True,
    # -------------------------------------------------------------------------
    # If True, scale the data to unit variance (or equivalently, unit standard
    # deviation).
    with_std=True,
)

standardScaler.fit(data)

data["transformed"] = standardScaler.transform(data)
[3]:
g = sns.jointplot(x="original", y="transformed", data=data, kind="scatter")
g.fig.set_figwidth(3)
g.fig.set_figheight(3)
../_images/19_preprocesamiento_de_datos_01_StandardScaler_5_0.png
[4]:
display(
    standardScaler.mean_,
    standardScaler.scale_,
)
array([200.91520468])
array([14.04114057])