スケーリングとは、平均を中央に揃え(平均= 0)、単位分散(分散= 1)にすることを理解しています。
しかし、scikit-learnのpreprocessing.scale(x)
とpreprocessing.StandardScalar()
の違いは何ですか?
それらはまったく同じことをしていますが、
preprocessing.scale(x)
は、一部のデータを変換する単なる関数ですpreprocessing.StandardScaler()
は、Transformer APIをサポートするクラスです_inverse_transform
_およびcoが必要ない場合でも、私は常に後者を使用します。 StandardScaler()
でサポートされています。
docs からの抜粋:
関数スケールは、単一の配列のようなデータセットに対してこの操作を実行するための迅速かつ簡単な方法を提供します
前処理モジュールはさらに、Transformer APIを実装するユーティリティクラスStandardScalerを提供し、トレーニングセットの平均と標準偏差を計算して、後でテストセットに同じ変換を再適用できるようにします。したがって、このクラスはsklearn.pipeline.Pipelineの初期段階での使用に適しています。
私の理解では、スケールはデータの最小-最大範囲のデータを変換し、スタンダードスケーラーは[-1、1]の範囲のデータを変換します。