AI資格ドリル
資格を選ぶ

用語比較

StandardScalerとMinMaxScalerの違い|平均0・分散1と0〜1の範囲(scikit-learn)

StandardScaler は平均を引いて標準偏差で割り、平均0・分散1にそろえる変換器です。MinMaxScaler は値を指定した範囲(既定は0〜1)に収める変換器です。

どちらも fit で求めた値を transform で使うため、訓練データの範囲に入らない新しいデータを渡したときの結果が違ってきます。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

StandardScalerとMinMaxScalerの要点

StandardScaler

公式の説明は「平均を引き、単位分散にスケールして特徴量を標準化する」。式は z = (x - u) / s。外れ値に敏感。

MinMaxScaler

各特徴量を指定の範囲(feature_range、既定は (0, 1))に変換する。外れ値の影響は減らさず、線形に固定の範囲へ縮める。

違いを表で確認

比較軸StandardScalerMinMaxScaler
変換の式z = (x - u) / s。u は訓練データの平均、s は標準偏差X_std = (X - 最小値) / (最大値 - 最小値)。そのあと範囲 (min, max) に合わせて拡大・移動する
変換後の値平均0・単位分散。値の範囲は決まっていない訓練データでは feature_range の範囲内(例: 0〜1)
外れ値外れ値に敏感で、外れ値があると特徴量ごとに尺度がずれることがある外れ値の影響は減らさない。最大の点が上限、最小の点が下限になる
fit で保存する値mean_(平均)と scale_(標準偏差)data_min_、data_max_、data_range_

Python3エンジニア認定データ分析試験の学習に使う書籍(Amazon)

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

変換後の値を0〜1の範囲にしたい人

MinMaxScaler を使います。feature_range の既定が (0, 1) で、訓練データの最小値が0、最大値が1になります。

02

SVM(RBFカーネル)や線形モデルの正則化に入れる前にそろえたい人

公式は StandardScaler の説明で、RBFカーネルや L1・L2 正則化は特徴量が0付近に中心化され、分散が同程度であることを前提にしていると述べています。分散が桁違いに大きい特徴量があると、目的関数を支配して他の特徴量から学べなくなることがあります。

03

テストデータに訓練データの範囲外の値があった人

どちらも transform は fit で求めた値を使います。公式の例では、MinMaxScaler は [[2, 2]] を [[1.5, 0.]] に変換し、1を超える値が出ます。clip=True にすると feature_range の範囲に切り詰められます。

具体例で使い分ける

例 1

StandardScaler: 平均を保存して新しいデータにも使う

公式の例のとおり、data=[[0,0],[0,0],[1,1],[1,1]] に StandardScaler を fit します。

  • fit のあと、scaler.mean_ は [0.5 0.5] になります。
  • scaler.transform(data) は [[-1,-1],[-1,-1],[1,1],[1,1]] を返します。
  • scaler.transform([[2,2]]) は [[3,3]] になります。fit で求めた平均と標準偏差が使われます。

結論: StandardScaler は、訓練データの平均と標準偏差で標準化する。

例 2

MinMaxScaler: 最小値と最大値で0〜1にする

公式の例のとおり、data=[[-1,2],[-0.5,6],[0,10],[1,18]] に MinMaxScaler を fit します。

  • fit のあと、scaler.data_max_ は [1. 18.] になります。
  • scaler.transform(data) は [[0,0],[0.25,0.25],[0.5,0.5],[1,1]] を返します。
  • scaler.transform([[2,2]]) は [[1.5, 0.]] になります。訓練データの範囲の外にある値は、0〜1を超えます。

結論: MinMaxScaler は、訓練データの最小値と最大値で範囲に収める。範囲外の新しい値は収まらない。

問題文から答えを選ぶ手順

  1. 1

    変換後に必要な性質を確認する

    値を決まった範囲(0〜1など)に収めたいなら MinMaxScaler。平均0・分散1にそろえたいなら StandardScaler。

  2. 2

    外れ値の有無を確認する

    どちらも外れ値の影響は残ります。StandardScaler は尺度がずれ、MinMaxScaler は外れ値が上限や下限を決めます。

  3. 3

    fit は訓練データだけに行う

    テストデータには fit で求めた値をそのまま使う transform を行います。fit_transform との使い分けは別の記事で確認します。

試験での見分け方

  • 1StandardScaler は、平均を引いて単位分散にスケールする。式は z = (x - u) / s。
  • 2MinMaxScaler は、特徴量を feature_range(既定 (0, 1))に変換する。
  • 3StandardScaler は外れ値に敏感。MinMaxScaler は外れ値の影響を減らさず、線形に縮める。
  • 4どちらも、訓練データで fit した値を、新しいデータの transform に使う。
  • 5MinMaxScaler の clip=True は、変換後の値を feature_range に切り詰める。

誤答しやすい選択肢

StandardScaler の変換後は0〜1に収まると考える

修正: StandardScaler は平均0・単位分散にそろえる変換で、値の範囲は決まっていません。公式の例でも、新しいデータ [[2,2]] は [[3,3]] になります。

MinMaxScaler なら外れ値の影響がなくなると考える

修正: 公式は、MinMaxScaler は外れ値の影響を減らさず、線形に固定の範囲へ縮めると説明しています。

テストデータも0〜1に必ず収まると考える

修正: 範囲は訓練データの最小値と最大値で決まります。公式の例では [[2,2]] が [[1.5, 0.]] になります。収めたいときは clip=True を指定します。

確認問題

Q1StandardScaler の式 z = (x - u) / s で、u と s は何か?

答え: u は訓練データの平均、s は標準偏差

公式の説明です。with_mean=False なら u は0、with_std=False なら s は1になります。

Q2MinMaxScaler の feature_range の既定値は?

答え: (0, 1)

公式の引数の説明です。変換後の値の範囲を指定します。

Q3公式の例で、data=[[-1,2],[-0.5,6],[0,10],[1,18]] に fit した MinMaxScaler で [[2,2]] を transform するとどうなるか?

答え: [[1.5, 0.]]

訓練データの範囲の外にある値なので、0〜1を超えます。

Q4StandardScaler と MinMaxScaler のうち、外れ値に敏感だと公式が述べているのは?

答え: StandardScaler

公式は、StandardScaler は外れ値に敏感で、外れ値があると特徴量ごとに尺度が異なることがあると説明しています。

到達チェック

  • StandardScaler の式を言える
  • MinMaxScaler の feature_range の既定値を言える
  • 外れ値についての公式の説明を、2つの変換器で区別して言える
  • 訓練データの範囲外の値の変換結果を、公式の例で説明できる

同じ資格で次に知りたいこと

よくある質問

QStandardScaler と MinMaxScaler の違いは?

A

StandardScaler は平均0・単位分散にそろえます。MinMaxScaler は各特徴量を feature_range(既定 (0, 1))の範囲に収めます。

Q外れ値があるときはどちらがよいですか?

A

公式は、StandardScaler は外れ値に敏感、MinMaxScaler は外れ値の影響を減らさないと説明しています。どちらも外れ値の影響は残ります。

Q新しいデータの値が範囲を超えたらどうなりますか?

A

MinMaxScaler は0〜1を超える値を返します。clip=True を指定すると feature_range に切り詰められます。

Qデータ分析試験の範囲?

A

本サイトの第6章scikit-learnの「変換器とパイプライン」で扱います。出題の形式や範囲は、受験前に公式の案内で確認してください。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)