web-dev-qa-db-ja.com

標準スケーラーとMinMaxScalerの違い

MinMaxScalerと標準スケーラーの違いは何ですか。

MMS= MinMaxScaler(feature_range = (0, 1))(Program1で使用)

sc = StandardScaler()(別のプログラムでは、minMaxScalerではなく標準スケーラーを使用しました)

6
Chakra

ScikitLearnサイト から:

StandardScalerは平均を削除し、データを単位分散にスケーリングします。ただし、下の左図に示すように、特徴値の範囲を縮小する経験的平均と標準偏差を計算する場合、外れ値が影響します。特に、各フィーチャの外れ値は大きさが異なるため、各フィーチャの変換されたデータの広がりは大きく異なります。ほとんどのデータは、変換された中央値収入フィーチャの[-2、4]の範囲にありますが、同じです。データは、変換された世帯数の小さい[-0.2、0.2]範囲で圧縮されます。

したがって、StandardScalerは、外れ値が存在する場合にバランスの取れた機能スケールを保証できません。

MinMaxScalerは、下の右パネルに示すように、すべての特徴値が[0、1]の範囲になるようにデータセットを再スケーリングします。ただし、このスケーリングでは、変換された世帯数の狭い範囲[0、0.005]のすべてのインライアが圧縮されます。

7

MinMaxScaler(feature_range = (0, 1))は、列の各値を[0,1]の範囲内で比例的に変換します。これは、データセットの形状を保持する(歪みなし)ため、フィーチャを変換する最初のスケーラー選択として使用します。

StandardScaler()は、列の各値を平均0と標準偏差1の範囲に変換します。つまり、各値は、平均を減算して標準偏差で割ることによって正規化されます。データの分布が正常であることがわかっている場合は、StandardScalerを使用します。

外れ値がある場合は、RobustScaler()を使用します。あるいは、外れ値を削除して、上記の2つのスケーラーのいずれかを使用することもできます(選択は、データが正常に分布しているかどうかによって異なります)。

追記:train_test_splitの前にスケーラーを使用すると、データ漏洩が発生します。 train_test_splitの後にスケーラーを使用してください

2
Black Raven