機械学習

カテゴリ特徴量の変換方法

投稿日:

こちらを読むと

  • カテゴリ特徴量の代表的な変換方法を知ることができます。
  • それぞれの変換方法の長所・短所が分かります。
  • 記事の所要時間は10分です。

前回の記事で、カテゴリ特徴量が何かを紹介しました。
カテゴリ特徴量は、数値でない選択肢の値で、そのままでは機械学習モデルで扱えません。

そのため、数値データに変換してあげる必要があります。

今回は、カテゴリ特徴量の代表的な変換方法を紹介します。

データ例

ここでは、kaggleのTitanicコンペティションから、

Embarked – 出港地(タイタニックへ乗った港)

を例に挙げます。

Embarkedは、以下の3種類のカテゴリをもつ特徴量です。

内容
CCherbourg
QQueenstown
SSouthampton

データセットの一部を抜粋すると、以下のようになっています。

PassengerIdEmbarked
27C
28Q
29S

One-Hotエンコーディング

One-Hotエンコーディングは前回の記事でも紹介しました。

データ例を変換すると、以下のようになります。

PassengerIdEmbarked_CEmbarked_QEmbarked_S
27100
28010
29001

ダミーコーディング

ダミーコーディングは、One-Hotエンコーディングの冗長性を減らした変換方法です。

PassengerIdEmbarked_CEmbarked_Q
2710
2801
2900

違いは見てもらえばわかると思いますが、変換後の列が1つ少ないです。

Embarked_Sの列がないですが、Embarked_CにもEmbarked_Qにもビットが立っていない(値が1でない)行は、Embarked_Sであると言えます。

このような、列を設けないが、他の列が0であることで表現するカテゴリを、
参照カテゴリと呼びます。

こうやってみるとダミーコーディングは優れているように見えますが、欠損データに弱いという欠点があります。

仮に、カテゴリが記録されていないレコードがある場合、One-Hotエンコーディングでは全列を0にすることで表現できますが、ダミーコーディングではそれができません。

すでに、全列が0という値を、参照カテゴリに使ってしまっているからです。

Effectコーディング

ダミーコーディングの欠点を補ったのが、最後に紹介するEffectコーディングです。

PassengerIdEmbarked_CEmbarked_Q
2710
2801
29-1-1

ダミーコーディングと同様、変換後は2列で表現していますが、値が違います。

ダミーコーディングでは参照カテゴリを0で表現していましたが、Effectコーディングでは-1で表現しています。

一見して、ダミーコーディングよりも分かりやすいですね。
そして欠損データにも対応できています。

ただし、Effectコーディングは表現方法としては万能に見えますが、’-1’のベクトルが密なベクトルであり、記憶容量や計算コストがかかってしまうようです。

変換方法のまとめ

変換方法長所短所
One-Hotエンコーディング欠損データの対応が容易1列分が冗長になっている
ダミーコーディング冗長でない欠損データの対応が難
Effectコーディング冗長でない上に、解釈が容易記憶容量や計算コストがかかる

まとめ

  • カテゴリ特徴量の代表的な変換方法を知ることができました。
  • それぞれの変換方法の長所・短所が分かりました。

この記事で紹介した変換方法は理解が容易で使いやすいです。ただし、膨大なカテゴリ数に対してはうまく機能しなくなります。

カテゴリ数がそこまで大きくない場合は有用なので、ぜひマスターしておきましょう!

Reference

機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践



-機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

機械学習初心者のための入門本ランキング

Table of Contents こちらを読むと評価基準第1位:ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装第2位:Pythonで動かして学ぶ! あたら …

単純パーセプトロン①

Table of Contents こちらを読むと単純パーセプトロンとは式まとめReference こちらを読むと ニューラルネットワークのパーセプトロンの概要を知ることができます 単純パーセプトロン …

単純パーセプトロン②

Table of Contents こちらを読むとモデルの数式誤り訂正学習法の更新式まとめ こちらを読むと 単純パーセプトロンのモデルの数式での表し方が分かります モデルの数式 前回のブログで、以下の …

単純パーセプトロン③

Table of Contents こちらを読むと数式おさらい実装まとめReference こちらを読むと 単純パーセプトロンの実装方法が分かります 数式おさらい 前回のブログで、単純パーセプトロンの …

ロジスティック回帰② アルゴリズム

Table of Contents こちらを読むと尤度関数を用いた最尤推定まとめReference こちらを読むと ロジスティック回帰のアルゴリズムを理解できます 前回の記事で、ロジスティック回帰はシ …

Twitterフォロー

Twitterタイムライン