参考サイト:
- About Feature Scaling and Normalization
- Normalization vs Standardization — Quantitative analysis
- Scale, Standardize, or Normalize with Scikit-Learn
- Impact of Scaling on Machine Learning Regression Algorithms
・正規化(Normalization):最大値1、最小値0にスケーリング
・標準化(Standardization):平均0、分散1にスケーリング
■モデル毎のスケールの違いに対する敏感さ■ (参考サイト)
- スケールの違いに敏感なモデル
- SVM
- K最近傍法
- Lasso, ElasticNet回帰
- スケールの違いにあまり影響を受けないモデル
- Ridge回帰(スケールの影響を受けると思ったが、参考サイトの実験では影響ない)
- 決定木モデル
- バギングモデル
- ブースティングモデル
■min-maxとstandardizationの使い分けについて■
- 変数の分布に正規分布を想定しているモデルには、標準化が適している。
- 変換前の値の殆どが1〜10の値をとり、一部桁違いに大きい値(例えば1000〜10000とか)がある変数をmin-maxで正規化すると、ほとんどの値が0付近の値になり、一部の値だけ1となるように変換されてしまう。そのため、一部の大きな値に影響を受け、ほとんどの値の差は意味が無くなってしまう。なので、変数内のスケールが大きく異なる場合は標準化(平均0、分散1)を用いて、それ以外では、min-maxを用いると良い。
- 勾配降下法を利用するモデルには変数のスケーリングは必須だが、正規化と標準化のどちらがいいかはやってみないとわからない。また、RobustScaler等他のスケーリングが有効な場合も多い。
- 主成分分析にて共分散行列を使う場合は標準化が重要と言われるが、ブログの実験結果では、正規化の方がスコアがいい場合もあったので、必ずしも標準化一択ではなく正規化や四分位範囲によるスケーリング(QuantileTransformer-Uniform)が有効な場合もある。(ブログの実験では、四分位範囲によるスケーリングが一番成績が良かった。)
■結論■
- どちらがいいかはケースバイケース。なので、ハイパーパラメーターのチューニングと同じように、スケーリングのチューニングも色々行い、そのデータにあったチューニング法を見つけるしかない。
ー> スケーリングのチューニングも行った方が良い。
■主なスケーリング手法■
・Min-Max scaling(Normalization)
■参考サイト抜粋(元データとスケールチューニング結果)■
・元データ
・比較結果
・比較結果
・比較結果
・比較結果
0コメント