5章カテゴリデータの取り扱い

レシピ5.0 はじめに

 ある値を測るのに、量ではなく質(種類)で分類したほうがよい場合がある。この種の質的情報は、カテゴリに分類して表現する。例えば、性別、色、自動車のブランドなどだ。しかし、すべてのカテゴリデータが同じなわけではない。本質的に順序のないカテゴリを、名義(nominal)カテゴリと呼ぶ。名義カテゴリには、次のようなものがある。

  • 青、赤、緑
  • 男性、女性
  • バナナ、いちご、りんご

 これに対して、自然な順序が存在するカテゴリは、順序(ordinal)カテゴリと呼ばれる。例を示す。

  • 低、中、高
  • 若者、老人
  • 賛成、どちらでもない、反対

 また、カテゴリ情報は一般に、ベクトルや文字列の列として表現される(例えば"Maine""Texas""Delaware"など)。問題は、ほとんどの機械学習アルゴリズムは、入力として数値しか受け付けないということだ。

 k-最近傍法は、数値データを必要とするアルゴリズムの1つだ。このアルゴリズムでは、観測値の距離を計算する必要がある。多くの場合、ユークリッド距離を用いる。

 ここでxyは、それぞれ個別の観測値を表し、添字iは、その観測値のi番目の特徴量を表す。しかし、xi が文字列(例えば"Texas")である場合には、この距離計算は明らかに不可能だ。したがって、文字列をユークリッド距離の式に入力できる何らかの数値情報に変換しなければならない。ここで重要なのは、カテゴリに存在する情報(順序やカテゴリ間の相対的な間隔など)を適切に表現した変換を行うことだ。本章では、このような変換を行う方法と、カテゴリデータを扱う際に発生する問題を解決する方法を説明する。 ...

Get Python機械学習クックブック 第2版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.