LoginSignup
0
0

More than 1 year has passed since last update.

カテゴリ変数の加工

Posted at

カテゴリ変数とは

カテゴリ変数の値は、相互に排他的なカテゴリまたはグループです。
論理的順序がある場合とそうでない場合とがあります。

カテゴリ変数の例:

  • テキスト
    • 支払方法(現金またはクレジットカード)
    • 機械設定(低、中、高)
    • 製品タイプ(木製、プラスティック製、金属製)
  • 数値
    • 性別(1=男性、2=女性)
    • 調査結果(1=そう思う、2=どちらでもない、3=そう思わない)
  • 日付
    • 曜日(月、火、水)
    • 月(1月、2月、3月)

なぜ加工が必要か

カテゴリ変数は、多くの機械学習のモデルでそのままインプットできず、モデルごとに適した形へ加工する必要があります。

加工前の注意点

テストデータにのみ存在するカテゴリ

テストデータにのみ存在するカテゴリが存在する場合、
そのレコードについて変換中にエラーが発生したり、予測値がおかしくなってしまう可能性があります。
このようなカテゴリがある場合以下の対応が考えられます。

  • そのままにする(該当レコードが少なく、予測スコアにほとんど影響を与えない場合)
  • 最頻値や予測値によって補完する
  • 変換における平均といえる値にする

順序変数

順序変数は、値の順序に意味があり、値の間隔に意味がない変数です。
例えば順位(1位、2位、3位)や評価(A、B、C)などです。
決定木系のモデルは変数の順序にしか依存しないので、そのまま整数に変換して扱えば良い。
数値変数として扱うか、順序の情報を無視してカテゴリ変数として扱うか、モデルによって判断が必要です。

カテゴリ変数の値の意味

カテゴリ変数の値に意味を持っている場合、単にencodingしてしまうとその情報が消えてしまいます。
例えば以下の場合注意が必要です。

  • ABC-00123やDEF-00456の場合、前3文字と後5文字に分割する
  • 1,2,3,Aのように数字・英字が混じっている場合、数字か否かを特徴量とする
  • AB,CDE,FGHIのように文字数が違う場合、文字数を特徴量とするなど

カテゴリ変数の加工方法

  • one-hot encoding
  • label encoding
  • feature hashing
  • frequency encoding
  • targe encoding
  • embedding
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0