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)
[4]:
display(
standardScaler.mean_,
standardScaler.scale_,
)
array([200.91520468])
array([14.04114057])