コンテンツにスキップ

case02(匿名加工情報): 加工仕様 — 5/7

加工の設計 の方針を、具体的な処理に落とし込みます。実際の Python コードと実行は ② Colab で。

主なルール

  • 仮ID(34条3号): 会員IDを、ランダムに割り当てた仮ID(例: A000001)へ1対1で置換し、加工後の顧客属性・購買履歴で共通に使う。元の会員IDと仮IDの対応表は保存しない(作れば連結符号になるため)。
  • 年代7区分(5号措置/4号): 基準日で年齢を算出し「20歳未満/20代/30代/40代/50代/60代/70歳以上」に丸める。超高齢者は「70歳以上」に吸収される(=特異値のトップコーディング)。
  • 住所 → 市区郡(5号措置): 「都道府県 + 市区郡」まで残し、町名・丁目番地を削除。
  • 利用日時 → 分単位(5号措置): 秒を削除(YYYY-MM-DD HH:MM)。
  • 商品名 → 商品カテゴリ(4号): 商品名をカテゴリ(野菜・果物・精肉・鮮魚・米・穀物・惣菜・パン・飲料・菓子・調味料)に一般化。限定品・超高級品もカテゴリに吸収され、特異性が消える。
  • 数量のトップコーディング(4号): しきい値(例: 5)を超える数量は「5」に丸める(大量購入の特異性を除去)。
  • 金額 → 金額区分(4号): 〜499/500〜999/1,000〜1,999/2,000〜4,999/5,000円以上 の区分に丸める。超高額は「5,000円以上」に吸収(トップコーディング)。
  • 削除: 氏名・電話番号・店舗ID・取引ID・担当者ID・商品ID・(内部の明細ID)。
加工仕様一覧(列ごとの処理)
元テーブル 元項目 加工 処理 加工後
customers 会員ID 置換 仮ID対応を作り置換 仮ID
customers 氏名・電話番号 削除 列削除
customers 生年月日 一般化 基準日で年齢→年代7区分 年代
customers 性別 加工なし そのまま 性別
customers 住所 一般化 市区郡まで抽出 市区郡
transactions 会員ID 置換 仮ID対応で置換 仮ID
transactions 利用日時 一般化 秒を削除 利用日時(分)
transactions 店舗名 加工なし そのまま 店舗名
transactions 店舗ID・担当者ID・取引ID 削除 列削除
purchases 商品名 一般化 カテゴリへ 商品カテゴリ
purchases 数量 丸め しきい値でトップコーディング 数量
purchases 金額 丸め 区分へ 金額区分
purchases 明細ID・商品ID 削除 列削除
  • 加工後の連結: 加工後の顧客属性・購買履歴は仮IDで結合し、「属性 × 購買傾向」を分析する(取引の粒度は保つが、取引IDは残さない)。

→ 加工後のスキーマは 加工後テーブル定義。実行は ② 実装(Colab)