機械学習

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

投稿日:

こちらを読むと

  • カテゴリ特徴量の代表的な変換方法を知ることができます。
  • それぞれの変換方法の長所・短所が分かります。
  • 記事の所要時間は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 こちらを読むと数式おさらい実装まとめReference こちらを読むと 単純パーセプトロンの実装方法が分かります 数式おさらい 前回のブログで、単純パーセプトロンの …

[機械学習] sklearnのグリッドサーチ(Grid Search)について

Table of Contents こちらを読むとグリッドサーチとはグリッドサーチの使い方まとめ こちらを読むと 機械学習のグリッドサーチ(Grid Search)の概要が分かりますsklearnのグ …

SIerエンジニアが1年間AIを勉強して感じること

Table of Contents こちらを読むと結論:AI職は、エンジニアの上位職ではなく、別物著者についてAI職と一般エンジニアとの違い機械学習エンジニアが一般エンジニアと違うところ機械学習のモデ …

ロジスティック回帰①

Table of Contents こちらを読むとロジスティック回帰とは何が嬉しいかシグモイド関数モデル式まとめReference こちらを読むと 機械学習のロジスティック回帰の概要を知ることができま …

多クラスロジスティック回帰② ソフトマックス関数の微分

Table of Contents こちらを読むとソフトマックス関数のおさらいソフトマックス関数の微分まとめReference こちらを読むと 多クラスロジスティック回帰のソフトマックス関数の微分の導 …

Twitterフォロー

Twitterタイムライン