LoginSignup
2
3

More than 3 years have passed since last update.

【初心者向けハンズオン】kaggleの「住宅価格を予測する」を1行ずつ読み解く(第5回:カテゴリカル変数のダミー化)

Posted at

お題

 有名なお題であるkaggleの「House Price」問題にみんなでチャレンジしていくことになったハンズオンの内容をメモしていく企画の第5回。解説というよりはメモのまとめだったりもしますが、どこかの誰かのためになれば幸いです。そろそろ終りが見えてきたと思いたい。

本日の作業

カテゴリカル変数のダミー化

文字列とかを数値に置き換えをして行く感じですかね。

# カテゴリカル変数の特徴量をリスト化
cat_cols = alldata.dtypes[alldata.dtypes=='object'].index.tolist()
# 数値変数の特徴量をリスト化
num_cols = alldata.dtypes[alldata.dtypes!='object'].index.tolist()
# データ分割および提出時に必要なカラムをリスト化
other_cols = ['Id','WhatIsData']
# 余計な要素をリストから削除
cat_cols.remove('WhatIsData') #学習データ・テストデータ区別フラグ除去
num_cols.remove('Id') #Id削除
# カテゴリカル変数をダミー化
alldata_cat = pd.get_dummies(alldata[cat_cols])
# データ統合
all_data = pd.concat([alldata[other_cols],alldata[num_cols],alldata_cat],axis=1)

カテゴリカル変数の特徴量をリスト化

  • .dtypes:これ第3回でやりました。データ型を検出するやつだ。
  • .index:これは第4回でやりました。該当する配列のindexだけ抜き出してくれるやつ。
  • .tolist():これも第4回出やりました。indexで抽出されたやつを配列にしてくれるやつ。

おお、積み重なっているじゃないか、自分。という謎の手応え。では以下の結果だけまとめて出力してみたいと思います。object型のデータ型のやつだけ、indexを一覧でとってきていますね。

cat_cols = alldata.dtypes[alldata.dtypes=='object'].index.tolist()
スクリーンショット 2020-06-22 12.05.14.png

数値変数の特徴量をリスト化

num_cols = alldata.dtypes[alldata.dtypes!='object'].index.tolist()

これはカテゴリカル変数の特徴量をリスト化するのと同じなので割愛。

データ分割および提出時に必要なカラムをリスト化

other_cols = ['Id','WhatIsData']

これは見たまんま、第2回のときに追加したカラムを配列に格納していますね。どうやらこの次のステップで余計な要素をリストから削除するのに使う様子。

余計な要素をリストから削除

いらない要素をリストから削除するのだそうです。cat_colsの中にはWhatIsDataという項目があったことを先程の出力結果からも確認できます。

cat_cols.remove('WhatIsData') #学習データ・テストデータ区別フラグ除去
num_cols.remove('Id') #Id削除

カテゴリカル変数をダミー化

alldata_cat = pd.get_dummies(alldata[cat_cols])

珍しく所感。関数に当て込むだけで勝手に全部やってくれるなんてなんて便利なやつだ…pythonのこういうところ好き。

alldata_cat = pd.get_dummies(alldata[cat_cols])の出力結果。すごい、ほんとに変わってる。
スクリーンショット 2020-06-22 12.15.49.png

データ統合

all_data = pd.concat([alldata[other_cols],alldata[num_cols],alldata_cat],axis=1)

これは見たまんまですね。[alldata[other_cols], alldata[num_cols], alldata_catをconcatとで合体。(見たまんまとか偉そうにいってしまうまでになりました)

おしまい。

今回はテンポよく進めたかと。存外読み解きに時間がかからなくなっている様子。地道にやってなれてきている感じですかね。引き続き精進します。
データの整形が終わったので次からいよいよ分析ですね。楽しみですね。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3