Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ StandardScaler、MinMaxScaler、MaxAbsScaler | Scikit-learnによるデータの前処理
Pythonによる機械学習入門

StandardScaler、MinMaxScaler、MaxAbsScaler

メニューを表示するにはスワイプしてください

データのスケーリングには、以下の3つの一般的な手法があります:

  • MinMaxScaler:特徴量を[0, 1]の範囲にスケーリング;
  • MaxAbsScaler:特徴量を最大絶対値が1になるようにスケーリング(データは[-1, 1]の範囲に収まる);
  • StandardScaler:特徴量を標準化し、平均を0、分散を1に調整。

スケーラーの動作を説明するために、penguins dataset'culmen_depth_mm'および'body_mass_g'の特徴量を例にします。これらの特徴量をプロットすることで、そのスケールを観察できます。

スケーリングなし

MinMaxScaler

MinMaxScaler は、最小値 を引いて値をゼロから始めるようにし、その後 (x_max - x_min) で割ることで、値を1以下に正規化する手法。

MinMax
MinMaxScaler

こちらは、MinMaxScaler の動作を示すGIFです:

MinMaxScaling

MaxAbsScaler

MaxAbsScaler は、最大絶対値 を見つけ、各値をその値で割ることで動作します。これにより、最大絶対値が1になります。

最大絶対値
最大絶対値スケーラー
最大絶対値スケーリング

StandardScaler

StandardScaler の考え方は統計学に由来します。平均値を引いて(ゼロを中心にし)、標準偏差で割ることで(分散を1にする)、データを標準化します。

Note
注意

平均値、標準偏差、分散について理解が不十分な場合は、 Learning Statistics with Python コースを参照してください。ただし、この知識がなくても先に進むことは可能です。

StandardScaler の公式
StandardScaler
StandardScaling

こちらは MinMaxScaler を使用したコーディング例です。他のスケーラーも同様の方法で適用されます。

12345678910
import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)

スケーラーはデータを numpy 配列に変換するため、出力はあまり見やすくありませんが、パイプラインを使用すれば問題ありません。

Note
注意

特徴量カラムX 変数)のみをスケーリングしてください。ターゲット変数をスケーリングする必要はありません。逆変換処理が複雑になるためです。

どのスケーラーを使用するべきか?

StandardScaler外れ値に敏感 であり、デフォルトのスケーラーとしてはあまり適していません。StandardScaler の代替を選ぶ場合、MinMaxScalerMaxAbsScaler のどちらを使用するかは、MinMaxScaler でデータを [0,1] の範囲にスケーリングするか、MaxAbsScaler[-1,1] の範囲にスケーリングするかという個人の好みによります。

1. データ前処理で MinMaxScaler を使用する主な目的は何ですか?

2. なぜデータセットに対して StandardScaler の使用を再考する必要がある場合がありますか?

question mark

データ前処理で MinMaxScaler を使用する主な目的は何ですか?

正しい答えを選んでください

question mark

なぜデータセットに対して StandardScaler の使用を再考する必要がある場合がありますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  10

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  10
some-alt