ML 開発者の中には、なぜそれを使用しなければならないか、あるいはそれが必要であるかどうかを理解する努力をせずに、「すべての」機械学習モデルの前にやみくもにデータを標準化する傾向がある人もいます。 そこで、この投稿の目的は、データを標準化する方法、理由、およびタイミングを説明することです。
標準化
標準化は、入力データ セットの特徴の範囲に大きな違いがある場合、または単にそれらが異なる測定単位 (たとえば、ポンド、メートル、マイルなど) で測定されている場合、浮かび上がります。 たとえば、距離計算に基づくモデルでは、特徴の 1 つが値の広い範囲を持っている場合、距離はこの特定の特徴によって支配されます。
これを例で説明すると、2 次元データセットがあり、2 つの特徴、メートル単位の身長とポンド単位の体重、それぞれメートルとポンドからなる範囲があるとします。 このデータセットに対してどのような距離ベースモデルを実行しても、体重の特徴は身長よりも大きな値を持つため、身長よりも優位に立ち、距離計算への貢献度が高くなります。
データの標準化方法
Z-score
Z-scoreはデータを標準化する最も一般的な方法の一つで、各特徴の各値について平均値を引き、標準偏差で割ることにより行うことができる。
一度標準化が行われると、すべての特徴は平均が0、標準偏差が1、つまり同じ尺度になります。
他の標準化手法もありますが、話を簡単にするために、この話ではZスコア手法に落ち着きます。
データを標準化するタイミングと理由
上で見たように、距離ベースのモデルでは、より広い範囲の特徴が距離メトリックを支配することを防ぐために標準化が実行されます。 しかし、データを標準化する理由はすべての機械学習モデルで同じではなく、モデルによって異なります。
では、どの機械学習モデルや手法の前に、データを標準化する必要がありますか?
1- PCAの前:
主成分分析において、分散の大きい/広い範囲の特徴は、分散の小さい特徴よりも重くなり、結果として第一主成分(最大分散の成分)を不正に支配することになる。
標準化は、すべての特徴に同じ重みを与えることによって、これを防ぐことができます。
2- クラスタリングの前に:
クラスタリングモデルは距離ベースのアルゴリズムで、観察間の類似性を測定してクラスタを形成するために、距離メトリックを使用します。 そのため、高い範囲を持つ特徴は、クラスタリングに大きな影響を与えることになります。 したがって、標準化はクラスタリング・モデルを構築する前に必要である。
3- KNN の前:
k-nearest neighbors は距離ベースの分類器で、学習セットのラベル付きオブザベーションとの類似性測定(たとえば、距離メトリック)に基づく新しいオブザベーションをクラスタリングする。 標準化により、すべての変数が類似度測定に等しく寄与するようになります。
4- Before SVM
Support Vector Machine は、分離平面とサポートベクトルの間の距離を最大化しようとするものです。 ある特徴が非常に大きな値を持っている場合、距離を計算する際に他の特徴よりも優位に立つことになる。 そこで、標準化により、すべての特徴が距離メトリックに同じ影響を与えるようにします。
5- 回帰モデルで変数の重要性を測定する前に
あなたは、標準化した独立変数を使用して回帰モデルをフィットし、それらの標準化係数の絶対値を比較して、回帰分析における変数の重要性を測定することができます。 しかし、独立変数が標準化されていない場合、それらの係数を比較しても意味がない。
6- ラッソとリッジ回帰の前に
LASSO と Ridge 回帰は各変数に関連する係数の大きさにペナルティをかけるものである。 そして、変数の規模は、その係数にどの程度のペナルティが適用されるかに影響します。 なぜなら、分散が大きい変数の係数は小さく、したがってペナルティが少ないからです。 したがって、両方の回帰をフィットする前に標準化が必要です。
標準化が不要な場合とは?
Logistic Regression and Tree based models
Logistic Regression と Decision Tree、Random forest、Gradient boosting などの Tree based algorithms は、変数の大きさには影響されない。
Wrapping up data standardization
この投稿で見たように、いつ標準化して、いつ標準化しないかは、どのモデルを使い、それを使って何をしたいかに依存します。 したがって、機械学習アルゴリズムの内部機能を理解し、いつデータを標準化するかを知り、成功する機械学習モデルを構築できるようにすることは、ML 開発者にとって非常に重要です。
N.B: この投稿で示した標準化が必要なモデルと方法のリストは、すべてを網羅しているわけではありません。