15.Pythonでデータ分析を始めよう!初心者向けガイド-ダミー変数化編-

PR表記

※アフィリエイト広告を利用しています

どうもニコイチです。実際に特徴量を作成してましょう。今回は、ダミー変数化について、実践的に解説していきます。

import pandas as pd
import numpy as np

# サンプルデータの読み込み
df = pd.read_csv('bank_data.csv')

# 基本的なダミー変数化
print("===== 基本的なダミー変数化の例(学歴) =====")
education_dummies = pd.get_dummies(df['education'], prefix='education')
print(education_dummies.head())

# 複数列の一括ダミー変数化
columns_to_dummy = ['job', 'marital', 'education']
print("\n===== 複数列の一括ダミー変数化 =====")
df_with_dummies = pd.get_dummies(df, columns=columns_to_dummy)
print(df_with_dummies.head())

# ダミー変数化前後での比較
print("\n===== 変換前のユニークな値 =====")
print("職業(job)の種類:", df['job'].unique())
print("\n===== 変換後のカラム名 =====")
job_columns = [col for col in df_with_dummies.columns if col.startswith('job_')]
print("職業関連のダミー変数:", job_columns)

# データ型の確認
print("\n===== データ型の確認 =====")
print("変換前の education カラムの型:", df['education'].dtype)
print("変換後のダミー変数の型:", education_dummies.dtypes.iloc[0])

# 相関分析の例
target = df['y']  # 目的変数(定期預金の申込有無)
correlations = education_dummies.apply(lambda x: x.corr(target))
print("\n===== 学歴と定期預金申込の相関 =====")
print(correlations.sort_values(ascending=False))
目次

ダミー変数化とは?(One-Hot表現)

ダミー変数化は、「カテゴリーデータを機械が理解できる形に変換する」作業です。
例えば、「赤・青・緑」という色の情報を考えてみましょう:

変換前:  色
         赤
         青
         緑

変換後:  赤  青  緑
         1   0   0
         0   1   0
         0   0   1

これは、「部屋の電気のスイッチ」のようなものです:

  • 赤い電気がついている → [1, 0, 0]
  • 青い電気がついている → [0, 1, 0]
  • 緑の電気がついている → [0, 0, 1]

なぜダミー変数化が必要?

質的データを量的データとして活用するためです。具体的には、

  1. 数値の大小関係を避けるため
  • 例えば、学歴を「小学校=1、中学校=2、高校=3」とすると
  • 「高校は小学校の3倍の価値がある」という誤った解釈をモデルがしてしまう
  1. カテゴリーの公平な扱い
  • すべてのカテゴリーを対等に扱える
  • どれか一つのカテゴリーが特別扱いされない

つまずきやすいポイントと解決策

  1. ダミー変数のわな
   education_dummies = pd.get_dummies(df['education'], prefix='education')
  • 全てのカテゴリーをダミー変数化すると、情報が重複する
  • 例:3つの選択肢があれば、2つの変数だけで十分
  • drop_first=True オプションで一つのカテゴリーを除外できる
  1. メモリ使用量の増加
  • カテゴリーが多いと、列数が大幅に増える
  • 必要なカテゴリーだけを選択することも検討する

実践的なTips

  1. prefix(接頭辞)の活用
   job_dummies = pd.get_dummies(df['job'], prefix='job')
  • 元のカラム名を接頭辞として付けることで、どの変数から作られたか分かりやすくなる
  1. 複数列の一括変換
   df_with_dummies = pd.get_dummies(df, columns=['job', 'marital', 'education'])
  • 複数のカラムを一度にダミー変数化できる
  1. 相関分析との組み合わせ
  • ダミー変数化後、目的変数との相関を確認
  • どのカテゴリーが予測に重要かを把握できる

実際の使用例

  1. 職業と定期預金申込の関係分析
  • 職業をダミー変数化することで
  • 「どの職業の人が定期預金を申し込みやすいか」を分析できる
  1. 学歴と申込の関係
  • 学歴をダミー変数化して
  • 「特定の学歴と申込率の関係」を調べられる

このように、ダミー変数化は「カテゴリーデータを分析可能な形に変換する」重要な前処理技術です。適切に使用することで、より精度の高い分析が可能になります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次