Now Loading...

Now Loading...

機械学習に使うデータには複数の特徴量が含まれます。そして、それらの値の範囲は大きく異なっていることもあります。例えば、身長はだいたい3桁の値、体重はだいたい2桁の値と、特徴量によってスケールはばらばらです。

このようなデータをそのまま線形回帰などに用いると、上手く学習できない可能性があります。そこで、データのスケールを事前に揃える前処理がよく行われます。

これにはいくつか方法があるのですが、ここでは一般的によく使われる「正規化」と「標準化」という二つを説明します。

データの特徴を確認しよう

今回は「機械学習の入り口「線形回帰」の実装を Python × NumPy で体験」でも使用している30人の身長と体重を使用します。NumPy配列で定義し、グラフで表示してみます。

 

身長は約130~190、体重は30~90と、データ間で桁が違うことがわかります。このまま線形回帰などを学習すると、上手くいかない可能性があるのです。
では、値の範囲を揃えるスケーリングの方法を見ていきましょう。

①正規化に挑戦

特徴量スケーリングの一つ、「正規化」について説明します。
厳密には正規化には複数種類あるのですが、ここでは最も代表的な「データの値の範囲を0~1に揃える」正規化を行います。

具体的な方法は、データをX、データの最大値をX_man、最小値をX_min、正規化したデータをX’とすると、次の式で表されます。

ではさっそくXとYを正規化してみましょう。
関数「norm」(正規化の意味であるnormalizationの略)として正規化処理を実装し、さらに正規化したデータをグラフで表示してみます。

 

XもYも、値の範囲が0~1になっていることがわかります。

②標準化に挑戦

次に、もう一つの代表的な手法である「標準化」について説明します。
データの範囲を0~1に揃える正規化に対して、標準化は「データの平均を0、分散を1に揃える」ことです。

標準化の方法は、データをX、データの平均をX_m、データの標準偏差をX_s、標準化したデータをX’とすると次の式で表されます。

では、XとYを標準化してみましょう。
関数「stand」(標準化の意味であるstandardizationの略)として標準化処理を実装し、さらに標準化したデータをグラフで表示してみます。

 

XとYの範囲は-2~2くらいになりました。一応標準化した後の平均と分散を表示してみましたが、確かにどちらもほぼ0と1になっていることがわかります。

元のスケールに戻す

ここまで、データを正規化、あるいは標準化する方法を説明しました。機械学習では、このようにスケーリングしたデータを使って学習することになります。

線形回帰を始めとした機械学習のゴールは、学習で得られたパラメータを用いて未知のデータに対する予測を行うことでした。この予測したい未知のデータに対してもスケーリングする必要があるのですが、この際、訓練データに対して計算した最大値と最小値、あるいは平均と標準偏差を使って正規化や標準化を行います。

さらに、こうして得られた予測値もスケーリングされた値になります。そのため、実際に出力する際には元のスケールに戻す必要があります。
ここからは、正規化と標準化のそれぞれについて、元のスケールに戻す方法を説明します。

①正規化された値を元のスケールに戻す

まずは正規化です。といっても、正規化の式を次のように変形するだけです。

X_max、X_minは、訓練データに対して計算したものを使用します。

 

②標準化された値を元のスケールに戻す

次に標準化です。こちらも、標準化の式を変形するだけです。

正規化の時と同様に、X_m、X_sは、訓練データに対して計算したものを使用します。

 

まとめ

今回はデータの前処理として、正規化と標準化の二つを学びました。データ同士の値の範囲に偏りがある場合、学習する前にこのような処理を行うことで学習が上手く行えます。


ただし、データに大きな外れ値がある場合は正規化は適さないなど、場面によって使い分ける必要もあります。また、白色化など、これ以外のスケーリング手法もありますので、余力がある方は調べてみてください。

\ シェア /

E資格スピードパッケージ2023#2修了者合格率100%達成

zero to one E資格 jdla

zero to oneの「E資格」向け認定プログラム

日本ディープラーニング協会の実施するE資格の受験ならzero to oneの「E資格」向け認定プログラム (税込165,000円) をおすすめします。当講座は、東京大学大学院工学系研究科の松尾豊教授と東北大学大学院情報科学研究科の岡谷貴之教授が監修する実践的なプログラムとなっています。
厚生労働省の教育訓練給付制度対象のE資格認定プログラムの中では最安値※となり、実質負担額49,500円~(支給割合70%の場合)で受講可能です。※2023年弊社調べ zero to one E資格 jdla

人工知能基礎講座を提供中

人工知能の第一人者である東京大学の松尾豊教授が監修した人工知能基礎講座を受講してみませんか? 人工知能の歴史から自然言語処理、機械学習、深層学習といった最先端のトピックやAIに関わる法律問題まで網羅しているので全てのビジネスパーソン・AIの初学者におすすめです。

サンプル動画

人工知能基礎講座はこちら↓ zero to one G検定 人工知能基礎 jdla

AI初学者・ビジネスパーソン向けのG検定対策講座

G検定受験前にトレーニングしたい方向けの問題集「G検定実践トレーニング」も提供中です。 zero to one E資格 jdla