PythonでPandasを使ってカテゴリー変数をダミー変数化する方法

スポンサーリンク

今回は、Pythonでダミー変数を作成することについて理解します。

では、さっそく始めてみましょう

スポンサーリンク

まず、ダミー変数とは何でしょうか?

データモデリングにおいて、ユニークかつ重要な概念であるダミー変数について、以下のシナリオを通じて紹介しよう。

連続データとカテゴリデータが混在しているデータセットを考えてみましょう。

カテゴリカル “という言葉を聞いたとたん、私たちの頭に浮かぶのは、データの中のカテゴリーやグループの存在でしょう。

通常、変数は鮮明で異なるタイプのカテゴリーを表していることが多い。

データ中の膨大な数のグループを扱い、それをモデルに与えることは、データセットのサイズが大きくなるにつれて退屈で複雑な作業になり、やがて曖昧さが増大し始める。

そこで登場するのが、ダミー変数という概念です。

ダミー変数とは、データセットのカテゴリ変数のサブカテゴリまたはサブグループを表す数値変数です。

一言で言えば、ダミー変数は、データの異なるサブ・グループを区別することを可能にし、それは回帰分析にもデータを使用することを可能にします。

以下の例を見てください。

10-15個のデータ変数を含むデータセットがあり、その中に’Male’ と ‘Female’ のカテゴリが含まれているとします。

タスクは、通常、どちらの性別が携帯ケースの色として「ピンク」を選び、選ぶかを理解することです。

さて、この場合、ダミー変数を使用して、0を男性、1を女性として代入することができます

そうすることで、投入されたデータに対して、投入モデルがより良い理解とクリアランスを持つことができるようになります。

今すぐPythonでダミー変数を作ってみよう!

では、まずダミー変数を作成してみましょう。

バイクのレンタル回数予測問題を使って、ダミー変数を分析・作成してみました。

それでは、はじめましょう

1. データセットのロード

まず、以下のようにデータセットを作業環境にロードする必要がある。

import pandas
BIKE = pandas.read_csv("Bike.csv")

元のデータセット

bike = BIKE.copy()

2. 作業用のオリジナルデータセットのコピーを作成します。

元のデータセットが変更されていないことを確認するために、元のデータセットのコピーを作成し、ダミーを作成する操作を行います。

そのために、pandas.dataframe.copy()関数を使用しています。

categorical_col_updated = ['season','yr','mnth','weathersit','holiday']

3. すべてのカテゴリ変数をリストに保存

それでは、データセットからすべてのカテゴリカル変数をリストに保存して、作業してみましょう!

bike = pandas.get_dummies(bike, columns = categorical_col_updated) print(bike.columns)

4. 4. get_dummies()メソッドで変数のダミーを作成する

Pandasモジュールには、カテゴリデータのダミーを作成するための dataframe.get_dummies() 関数が用意されています。

Index(['temp', 'hum', 'windspeed', 'cnt', 'season_1', 'season_2', 'season_3',
       'season_4', 'yr_0', 'yr_1', 'mnth_1', 'mnth_2', 'mnth_3', 'mnth_4',
       'mnth_5', 'mnth_6', 'mnth_7', 'mnth_8', 'mnth_9', 'mnth_10', 'mnth_11',
       'mnth_12', 'weathersit_1', 'weathersit_2', 'weathersit_3', 'holiday_0',
       'holiday_1'],
      dtype='object')

この関数に、データセットとカテゴリカラムの値を渡してダミーを作成しています。

出力です。

以下のように、各カテゴリーのサブグループごとにダミーや別の列が作成されます。

例えば、「month」という列は、12ヶ月分のカテゴリをすべて持っている。

このように、すべての月がサブグループとみなされ、get_dummies()関数によって、すべての列に対して個別の列が作成されています。

Dataset-Bike Prediction
Dataset-Bike Prediction

get_dummies()関数で生成されたデータセットはこちらです。

まとめ

ここまでで、このトピックは終了です。

もし何か疑問があれば、お気軽にコメントください。

Pythonに関連するこのような記事のために、ご期待ください、そして、それまでは、幸せな学習!

タイトルとURLをコピーしました