カテゴリデータの前処理

カテゴリ変数は、通常文字列として表される場合が多い。このなかで、服のサイズを表す S、M、L や被害程度を表す strong、medium、weak のように大小関係を持つカテゴリ変数がある。このような変数を順序特徴量という。これに対して、気象を表す sunny、cloudy、rainy、snowy などのように大小関係のない特徴もあり、これを名義特徴量という。

カテゴリ変数で表される特徴量には順序関係を持つ順序特徴量と順序関係を持たない名義特徴量とがある。

これらの特徴量は通常文字列として記録されるが、そのままでは機械学習の入力データとして使用できない。機械学習で使えるような形にするには、解析者自身がこれらの文字列を数値に置き換える必要がある。順序特徴量の場合は、大小関係を考慮してカテゴリ変数を数値に変更すればよい。名義特徴量の場合は、カテゴリ間に大小関係が生じないように one-hot encoding などの方法で数値化を行う。

順序特徴量

順序特徴量の場合、その大小関係を保持させて整数値に変換することで対応できる。例えば、S = 1、M = 2、L = 3 のように変換することができる。

機械学習における順序特徴量の取り扱い方

名義特徴量

one-hot encoding

名義特徴量の場合は、ダミー変数を制定して、各文字ラベルをダミー変数に置き換えることができる。例えば、下の表のように sunny、cloudy、rainy、snowy の 4 つのカテゴリに対応するためのダミー変数を 4 つ用意して、sunny であれば sunny 特徴量に 1 を、他の 3 特徴量に 0 として表すことができる。このような置換手法を one-hot encoding という。

機械学習における名義特徴量の取り扱い方(one-hot encoding)

dummy encoding

また、カテゴリが 4 つあるとき、4 つのダミー変数を用意する必要はない。例えば、sunny、cloudy および rainy に対応するダミー変数を用意して、この 3 つのダミー変数がすべて 0 のときは自動的に snowy を意味するようになる。このような置換手法を dummy encoding という。one-hot encoding に比べ、この dummy encoding の方が多重共線性を回避することができる。

機械学習における名義特徴量の取り扱い方(dummy encoding)

effecct encoding

one-hot encoding の多重共線性を回避するもう一つの方法として、effect encoding がある。effect encoding では、dummy encoding のとき、すべての要素が 0 のベクトルを -1 に置き換えたものに等しい。

機械学習における名義特徴量の取り扱い方(effect encoding)