Shikata Ga Nai

Private? There is no such things.

第32回:データの再符号化:数字とカテゴリの変換方法

Hello there, ('ω')ノ

データ分析の現場では、ある変数の「形式」を数字からカテゴリへ/カテゴリから数字へと変える必要がよくあります。 このような作業は 「再符号化(さいふごうか)」 と呼ばれます。

たとえば:

  • 「性別:1 → 男性、0 → 女性」
  • 「アンケート:とても満足 → 5、満足 → 4 …」
  • 「都道府県コード:13 → 東京都、27 → 大阪府」

こうした変換を適切に行うことで、分析しやすくなり、ツールとの相性もよくなります。


✅ 再符号化とは?

カテゴリデータと数値データの間を変換する処理のことです。 次の2パターンがあります:

方向 説明
数値 → カテゴリ コードを人間にわかるラベルに変換 1 → 男性、0 → 女性
カテゴリ → 数値 計算や分析用に数値化 満足 → 4点、不満 → 1点

🔁 よくある再符号化の実例

元データ 再符号化の目的 変換後
性別(0/1) ラベル表示用 男性/女性
アンケート評価 数値化して集計 「非常に満足」→ 5、「不満」→ 1
都道府県コード 地図やレポート用 13 → 東京都
製品カテゴリ 機械学習用の数値入力 A → 1、B → 2、C → 3

📘 Excelでの再符号化方法

🔸 IF関数を使った例

=IF(A2=1, "男性", "女性")

🔸 VLOOKUP関数で対応表から変換

コード 地域名
13 東京都
27 大阪府
=VLOOKUP(A2, 対応表範囲, 2, FALSE)

▶ 多数の変換パターンがあるときは対応表を使う方が便利!


🧠 SQLでの再符号化方法

🔸 CASE文を使った再符号化

SELECT
  CASE gender
    WHEN 1 THEN '男性'
    WHEN 0 THEN '女性'
    ELSE '不明'
  END AS gender_label
FROM users;

🔸 JOINでマスタテーブルを参照する方法

SELECT u.name, c.pref_name
FROM users u
JOIN prefectures c
ON u.pref_code = c.pref_code;

▶ コードと名称を別テーブルで管理しておけば、柔軟に変更・管理可能です。


🤖 機械学習で使う「エンコーディング」の基礎

データを数値で扱う必要があるため、カテゴリ変数を数値に変換する作業が欠かせません。

方法 説明
ラベルエンコーディング 順番に番号を割り振る A → 0、B → 1、C → 2
ワンホットエンコーディング 複数のフラグ列を作る A → (1,0,0)、B → (0,1,0)

▶ 分析目的やツールに応じて使い分けましょう!


⚠️ 再符号化の注意点

注意点 内容
意味のない順番をつけない 「男=1」「女=2」に意味はない → 順序に注意
ラベルの可読性を保つ 最終レポートやダッシュボードでは“人が読める形”に変換すること
変換ルールの記録を残す データ辞書や対応表は再利用・共有できるようにしておく

✅ まとめ:データを“人にも機械にもわかりやすく”!

ポイント 内容
再符号化とは カテゴリと数値の間を行き来する処理
ツール別に方法あり ExcelはIF/VLOOKUP、SQLはCASE/JOINが定番
分析や可視化に不可欠 数値で計算し、ラベルで報告するために使い分ける
管理の工夫も大事 対応表・辞書を作って一元管理しよう!

Best regards, (^^ゞ