いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【KNIME】データをNormalizationしたい

・数値データを解析する際に、複数の特徴量を使う場合、単位の違いが問題になることがある。Random Forestなどの決定木系の手法ではそれほど問題にならないかも知れないが、その他多くの場合では何らかの手法でNormalizationされることが多い。

・KNIMEでNormalizationを調べてみると、Normalizer(PMML)というやつが引っ掛かった。Normalizationの手法をノードの設定で選択することができる(下図)。

f:id:choron81:20211121221743p:plain

・Min-Max Normalization:データの最大値-最小値で各データを割る。データの幅を0-1にするのが一般的らしい。このノードでは、変換後のデータの幅を0-1以外にも好きに設定することができるらしい。

・Z-Score Normalization:Z値というのは、各データから平均を引いて標準偏差で割るという変換を加えた値のこと。この変換を経ると、平均0、標準偏差1になる。

・Normalization by Decimal Scaling:Decimalは10進数のこと。10^nでデータを割って、データの絶対値が1を上回らないようにするらしい。

・平均50、標準偏差10のデータを2000個発生させ、それぞれのNormalizationを経たあと、基本統計量を纏めて、元データと比べてみた(下図、上から順番に元データ、各normalization手法)。

f:id:choron81:20211121223811p:plain

・Max、Min、Mean、Std. devにそれぞれの特徴がはっきり出た。

・ちなみに、機械学習の前処理としては、比較的外れ値に強いZ-Score Normalizationが好まれる傾向にあるらしい。

 

終わり。