今回の記事では、Pythonでのダミー変数の作成について理解します。
ダミー変数とは何か?。
ここでは、データモデリングにおけるユニークかつ重要な概念であるダミー変数について、以下のシナリオを通して紹介したいと思います。
連続データとカテゴリデータの組み合わせのデータセットを考えてみましょう。
データ分析や機械学習の際、変数が多種多様のデータセットを使う事がよくあります。
膨大なデータ数のグループを扱い、それをモデルに与えることは、データセットのサイズが大きくなるにつれて退屈で複雑な作業になりがちです。
そこで登場するのが、ダミー変数という概念です。
ダミー変数とは、データセットのカテゴリ変数のサブカテゴリまたはサブグループを表す変数のことです。
簡単に言うと、ダミー変数によって、データの異なるサブグループを区別することができ、その結果、データを回帰分析に使用することができます。
ダミー変数の簡単な例
例えば、10~15個のデータ変数があり、その中に「男性」と「女性」というカテゴリがあるデータセットを考えます。
タスクは、通常どちらの性別が携帯ケースの色として「ピンク」を選び、選ぶかを理解することです。
さて、この場合、ダミー変数を使用して、0を男性、1を女性として代入することができます。
そうすることで、投入されたデータに対して、投入モデルがより良い理解とクリアランスを持つことができるようになります。
Pythonでダミー変数を作ってみる
それでは、ダミー変数の作成から始めてみましょう。
今回は、自転車レンタル回数予測という問題を使って、ダミー変数を分析・作成しました。
それでは、はじめましょう
1. データセットをインポートする
まず、以下のようにデータセットをインポートします。
import pandas
BIKE = pandas.read_csv("Bike.csv")
元のデータセットが変更されていないことを確認するため、作業用に元のデータセットのコピーを作成します。
その際にpandas.dataframe.copy()
関数を使用しています。
bike = BIKE.copy()
この記事もチェック:Pythonでデータセットから別のデータセットへピボットテーブルを作成する
3. すべてのカテゴリカル変数をリストに格納
では、データセットからすべてのカテゴリ変数をリストに保存して、作業してみましょう!
categorical_col_updated = ['season' ,'yr' ,'mnth' ,'weathersit' ,'holiday' ]
4. get_dummies()メソッドで変数のダミーを作成します。
Pandasでは、カテゴリデータのダミーを作成するための関数dataframe.get_dummies()が提供されているので、これを使っていきます。
bike = pandas.get_dummies(bike, columns = categorical_col_updated)
print(bike.columns)
ダミーを作成するために、データセットとカテゴリカラムの値を関数に渡しました。
以下のように、各カテゴリーのサブグループごとにダミーまたは別の列が作成されます。
例えば、’month’という列は、12ヶ月分のカテゴリーを全て持っています。
したがって、すべての月がサブグループとみなされ、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')