Je comprends que la mise à l'échelle signifie centrer la moyenne (moyenne = 0) et faire la variance unitaire (variance = 1).
Mais, quelle est la différence entre preprocessing.scale(x)
et preprocessing.StandardScalar()
dans scikit-learn?
Ils font exactement la même chose, mais:
preprocessing.scale(x)
n'est qu'une fonction qui transforme certaines donnéespreprocessing.StandardScaler()
est une classe prenant en charge l'API Transformer J'utiliserais toujours ce dernier, même si je n'aurais pas besoin de inverse_transform
Et co. pris en charge par StandardScaler()
.
Extrait de la docs :
L'échelle de fonction fournit un moyen rapide et facile d'effectuer cette opération sur un seul ensemble de données de type tableau
Le module de prétraitement fournit en outre une classe utilitaire StandardScaler qui implémente l'API Transformer pour calculer la moyenne et l'écart-type sur un ensemble d'apprentissage afin de pouvoir réappliquer ultérieurement la même transformation sur l'ensemble de test. Cette classe peut donc être utilisée dans les premières étapes d'un sklearn.pipeline.Pipeline
Ma compréhension est que l'échelle transformera les données dans la plage min-max des données, tandis que le standardcaler transformera les données dans la plage [-1, 1].