わいす工場 Kaggle kaggleトライ -Home credit 3-

kaggleトライ -Home credit 3-


さて前回大量のカラムを雑に英訳しました。今回はそれらにざっと目を通して、使用するデータの決定と、それに伴う結合をやっていこうと思います。データ解析手順の3番に相当します。

  1. 明らかにしたい問いや、問題の定義
  2. 訓練およびテストデータの取得
  3. データの整形、作成、クレンジング
  4. パターンの分析、特定、また探索的にデータを分析する
  5. 問題のモデル化、予測、解決
  6. 問題解決のステップと最終的な解決方法を視覚化、報告
  7. 結果の提出

たくさんカラムありますが、その前にデータ中身をみてみようと思います。

#おさらいも兼ねて、データを読み込み
import pandas as pd
import numpy as np
import matplotlib as plt
import sklearn

train_df = pd.read_csv("application_train.csv")
test_df = pd.read_csv("application_test.csv")
bur = pd.read_csv("bureau.csv")
bur_b = pd.read_csv("bureau_balance.csv")
cd_b = pd.read_csv("credit_card_balance.csv")
ins_p = pd.read_csv("installments_payments.csv")
pos_c = pd.read_csv("POS_CASH_balance.csv")
prv_a = pd.read_csv("previous_application.csv")
#train_df, test_dfにおいてIDがユニークか確認。
print(train_df["SK_ID_CURR"].nunique())
print(train_df["SK_ID_CURR"].count())
print(test_df["SK_ID_CURR"].nunique())
print(test_df["SK_ID_CURR"].count())
実行結果はこちら。全カラムがIDでユニークとなっていることが確認できたので、基本的にはSK_ID_CURRをキーにして追加していけば特徴量を追加することができそうです。
307511
307511
48744
48744

続いて他のテーブルの構成も見ていきましょう。train_df, test_dfに正確に加えるためにはSK_ID_CURRごとにデータをまとめる必要があります。

bur(“bureau.csv”)
bur.head()で確認したところ、1つのSK_ID_CURRに対して、複数のSK_ID_BUREAUがくっついているようです。なのでまずはSK_ID_CURRをベースとして平均化すれば良さそうです。

bur_b(“bureau_balance.csv”)
SK_ID_BUREAU、MONTHS_BALANCE、STATUSからなるカラムですので、burにまずくっつけるべきのようです。MONTHS_BALANCEが複数並んでいるので、STATUSごとにカウントしたデータをくっつければ使えそうです。

cd_b (“credit_card_balance.csv”)
こちらも1つのSK_ID_CURRに対して複数のSK_ID_PREVがありますので、burと同様に平均やカウントで追加していくことになりそうです。
ins_p(“installments_payments.csv”)とpos_c(“POS_CASH_balance.csv”)、
prv_a(“previous_application.csv”)も同様ですので、データ型が数字のものは平均をとり、オブジェクトのものはカウントして、train_dfにくっつくようにしたいと思います。

ということでデータ前処理の方向性を定めました。次回は実際にコードを書きながらデータ整形を行っていきます。




コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


Related Post