K_DM Book
用語集
対象者 中学生
対象者別の入口 →

対象者の設定はこのブラウザの中にだけ保存されます。

言語 JA

MinMaxScaler で区間正規化する(中学生向け)

入門中学生

01.3.4 中学生向け

MinMaxScaler で区間正規化する(中学生向け)

最終更新 2026-11-01 読了時間 1 分
まとめ
MinMaxScaler(ミンマックス・スケーラー)は、いちばん小さい値を 0、いちばん大きい値を 1 として、全部の数を「0 から 1 のものさし」に置きかえる道具です。「握力 32 kg」と「50 m 走 8.1 秒」のように単位も大きさもちがう数を、同じ土俵で比べられるようにするのが目的です。順番も、値どうしの間かくの比も変わらず、ものさしの目盛りを読みかえただけなので元にもどすこともできます。ただし 1 人だけ極端な値があると、その人がはしを独りじめして、ほかの全員が 0 付近に押しこまれる弱点があります。

クイズ:握力と 50 m 走、どっちが「すごい」? #

体力テストの結果を見て、A さんと B さんのどちらが運動が得意か考えます。

握力50 m 走
A さん38 kg8.4 秒
B さん30 kg7.3 秒
クラスの最小22 kg7.0 秒
クラスの最大42 kg9.5 秒

「38 と 8.4 を足す」わけにはいきません。kg と秒では単位がちがうからです。そこで「クラスの中で、下から何割のところにいるか」に読みかえてみます。A さんの握力は最小 22 と最大 42 の間で、上から 2 割くらいの位置。50 m 走は真ん中より少し遅いくらい。こうすると、2 つの種目を同じ「0 から 1 のものさし」で比べられます。これが MinMaxScaler のやっていることです。

左の図では、20 付近に集まる山と 100 付近に広がる山が別々の場所にある。右の図では、両方の山が −1 から 1 の同じ範囲に重なって置かれている

上の図の左側は、変える前の 2 種類の数です。片方は 20 の近くに集まり、もう片方は 100 の近くに広く散らばっています。右側が MinMaxScaler で変えたあとで、2 つの山が同じ範囲(この図では −1 から 1)にぴったり重なっています。山の形は変わらず、置かれる場所と幅だけが −1 から 1 にそろったことに注目してください。

仕組み:ものさしを読みかえる #

まず、いちばん小さい値と大きい値(最小と最大)を見つけます。握力なら 22 kg と 42 kg で、図では左の山の左はしと右はしを探すことに当たります。次に、いちばん小さい値を 0 に、いちばん大きい値を 1 にします。山の左はしを 0 の位置に、右はしを 1 の位置に持ってくるわけです。続けて、間の値は「どのくらいの位置にいるか」で決めます。A さんの握力 38 は、22 から 42 までの道のりの 8 割のところなので 0.8 になり、間の値はみんなこの「道のりの割合」で決まります。最後に、全部の種目で同じことをします。すると図の右側のように、どの山も 0 から 1 の同じ範囲に収まり、比べたり足し合わせたりできるようになります。

動かして見てみよう #

下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。

気をつけたいこと #

最初の注意は、極端な 1 人にふり回されることです。クラスに握力 90 kg の人が 1 人いると、その人が 1 を取り、ほかの全員は 0.1 から 0.25 くらいにぎゅっと押しこまれます。差が見えにくくなるので、そんなときは別のそろえ方(RobustScaler など)を考えます。二つ目は、「向き」はそろわないことです。50 m 走は小さいほどよいので、0 から 1 にしただけでは「1 がいちばん速い」にはならず、向きをそろえるのは別の仕事です。三つ目は、ものさしは最初に決めた「最小 22 kg・最大 42 kg」を使い続けることです。あとから加わった人が最大を超えても、ものさしを作り直さず同じ基準で測るのがルールで、1 を超える値が出ることもあります。

やってみよう #

最初の課題は、自分のクラスの体力テスト(または好きな種目の記録)を 2 つ選び、最小を 0、最大を 1 として、自分の値がどこにくるか計算することです。二つ目は、身の回りで「単位がちがって比べにくいペア」を 3 つ探すことです(例:テストの点と提出物の回数、身長と体重)。三つ目は、上の表に「握力 90 kg の転校生」を加えて、全員の値を計算し直すことです。元の値がどう変わるかを見て、何が困るか説明してみましょう。

つぎに読む #

式と Python のプログラムまで含めた本編は MinMaxScaler(標準版) です。極端な 1 人にふり回されないそろえ方は 中学生向けの RobustScaler で紹介しています。数を「低・中・高」のようなグループに区切る方法は 中学生向けのビニング にあります。