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

kaggleトライ -Home credit 2-


引き続きHome Creditコンペに取り組みます。Kaggle解析の基本フローにのっとり進めていこうと思います。本日は2を行います。

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

データ自体は通常通り下記のコードでそれぞれ格納します。今回はファイルサイズが重たいので、全て同一フォルダに入れているので下記のようなコードになります。一旦全データを格納しています。submission sample, data descriptionは解析自体には使用しないので割愛。

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")

pd.shapeでデータ構成をみるのも良いのですが、HomeCredit_columns_description.csvの中に各カラムの説明がありましたのでそちらをまずは見てみようと思います。中身はこんな感じで、使用されているTableとカラム名、説明が書いてあります。なんと全部で221カラムもありますが重要なところなので、訳しながら見ていきたいと思います。

NoTableRowDescription
1application_{train|test}.csvSK_ID_CURRID of loan in our sample
2application_{train|test}.csvTARGETTarget variable (1 – client with payment difficulties: he/she had late payment more than X days on at least one of the first Y installments of the loan in our sample, 0 – all other cases)
5application_{train|test}.csvNAME_CONTRACT_TYPEIdentification if loan is c
ash or revolving

ということでカラムをいい加減に英訳したのが下記となります。相当いい加減ですので転用する際は再度の確認をした方が良いかと思います。

Row内容
SK_ID_CURRLoanのID
TARGET1: 最初のY回の支払いにおいて、X 日以上の遅延が発生した
NAME_CONTRACT_TYPEローンの種類。現金かリボルビングか
CODE_GENDER顧客の性別
FLAG_OWN_CAR顧客が車を持っているか?
FLAG_OWN_REALTY顧客の住居。家かアパートか
CNT_CHILDREN顧客の子供の数
AMT_INCOME_TOTAL顧客の収入
AMT_CREDIT顧客のローン金額
AMT_ANNUITYローン年金
AMT_GOODS_PRICEローン商品の価格(?)
NAME_TYPE_SUITEローン申し込み時の同行者
NAME_INCOME_TYPE顧客の収入の種類
NAME_EDUCATION_TYPE顧客の最終学歴
NAME_FAMILY_STATUS顧客の家族のステータス
NAME_HOUSING_TYPE居住状況(借家、両親と同居)
REGION_POPULATION_RELATIVE顧客住居エリアの人口レベル
DAYS_BIRTH申請時の顧客の年齢
DAYS_EMPLOYED顧客の直近の勤務日数
DAYS_REGISTRATION顧客が変更するまでの日数(?)
DAYS_ID_PUBLISHローン申請時からの身分証明書変更日数(?)
OWN_CAR_AGE顧客の車の年代
FLAG_MOBIL携帯があるか?(1 = yes)
FLAG_EMP_PHONE仕事用の電話があるか(1 =yes)
FLAG_WORK_PHONE家庭用の電話があるか(1 =yes)
FLAG_CONT_MOBILE携帯電話を届けたか??
FLAG_PHONE家庭用の電話があるか(1 =yes)
FLAG_EMAILEmailを持っているか(1=yes)
OCCUPATION_TYPE顧客の職業の種類
CNT_FAM_MEMBERS顧客の家族が何人いるか?
REGION_RATING_CLIENT顧客居住地域のレーティング(会社独自)
REGION_RATING_CLIENT_W_CITY都市を考慮した顧客居住地域のレーティング(会社独自)
WEEKDAY_APPR_PROCESS_START顧客がローンを申請した曜日
HOUR_APPR_PROCESS_START顧客がローンを申請したおおよその時間
REG_REGION_NOT_LIVE_REGION顧客の本籍地と申請住所が一致しているか?(1 = 異なる) 0: 地域レベルで一致
REG_REGION_NOT_WORK_REGION顧客の本籍地と職場住所が一致しているか?(1 = 異なる) 0: 地域レベルで一致
LIVE_REGION_NOT_WORK_REGION顧客の申請住所と職場住居が一致しているか? (1 = 異なる) 0: 地域レベルで一致
REG_CITY_NOT_LIVE_CITY顧客の本籍地と申請住所が一致しているか?(1 = 異なる) 0: 都市レベルで一致
REG_CITY_NOT_WORK_CITY顧客の申請住所と職場住居が一致しているか? (1 = 異なる) 0: 都市レベルで一致
LIVE_CITY_NOT_WORK_CITY顧客の申請住所と職場住居が一致しているか? (1 = 異なる) 0: 都市レベルで一致
ORGANIZATION_TYPE顧客勤務先の組織のタイプ
EXT_SOURCE_1外部データソースからの正規化スコア 1
EXT_SOURCE_2外部データソースからの正規化スコア 2
EXT_SOURCE_3外部データソースからの正規化スコア 3
APARTMENTS_AVG顧客が住んでいるアパート階の平均
BASEMENTAREA_AVG顧客が住んでいるアパートの地下フロア平均
YEARS_BEGINEXPLUATATION_AVG開発平均時期(?)
YEARS_BUILD_AVG平均築年数
COMMONAREA_AVG共有エリアの平均
ELEVATORS_AVGエレベータ平均
ENTRANCES_AVGエントランス平均
FLOORSMAX_AVG最大階数平均
FLOORSMIN_AVG最低階数平均
LANDAREA_AVG土地面積平均
LIVINGAPARTMENTS_AVGアパートのリビングの平均
LIVINGAREA_AVGリビング領域の平均
NONLIVINGAPARTMENTS_AVG居住していないアパート平均
NONLIVINGAREA_AVG人のいないエリアの平均
APARTMENTS_MODE顧客が住んでいるアパート階の最頻値
BASEMENTAREA_MODE顧客が住んでいるアパートの地下フロア最頻値
YEARS_BEGINEXPLUATATION_MODE開発最頻値時期(?)
YEARS_BUILD_MODE最頻値築年数
COMMONAREA_MODE共有エリアの最頻値
ELEVATORS_MODEエレベータ最頻値
ENTRANCES_MODEエントランス最頻値
FLOORSMAX_MODE最大階数最頻値
FLOORSMIN_MODE最低階数最頻値
LANDAREA_MODE土地面積最頻値
LIVINGAPARTMENTS_MODEアパートのリビングの最頻値
LIVINGAREA_MODEリビング領域の最頻値
NONLIVINGAPARTMENTS_MODE居住していないアパート最頻値
NONLIVINGAREA_MODE人のいないエリアの最頻値
APARTMENTS_MEDI顧客が住んでいるアパート階の中央値
BASEMENTAREA_MEDI顧客が住んでいるアパートの地下フロア中央値
YEARS_BEGINEXPLUATATION_MEDI開発中央値時期(?)
YEARS_BUILD_MEDI中央値築年数
COMMONAREA_MEDI共有エリアの中央値
ELEVATORS_MEDIエレベータ中央値
ENTRANCES_MEDIエントランス中央値
FLOORSMAX_MEDI最大階数中央値
FLOORSMIN_MEDI最低階数中央値
LANDAREA_MEDI土地面積中央値
LIVINGAPARTMENTS_MEDIアパートのリビングの中央値
LIVINGAREA_MEDIリビング領域の中央値
NONLIVINGAPARTMENTS_MEDI居住していないアパート中央値
NONLIVINGAREA_MEDI人のいないエリアの中央値
FONDKAPREMONT_MODEわかんないから別で調べる
HOUSETYPE_MODE建物タイプの最頻値
TOTALAREA_MODEトータルエリアの最頻値
WALLSMATERIAL_MODE壁の素材最頻値
EMERGENCYSTATE_MODE緊急事態最頻値
OBS_30_CNT_SOCIAL_CIRCLE過去30日間の顧客社会環境の観察内容
DEF_30_CNT_SOCIAL_CIRCLE過去30日間の顧客社会環境のデフォルト観察内容
OBS_60_CNT_SOCIAL_CIRCLE過去60日間の顧客社会環境の観察内容
DEF_60_CNT_SOCIAL_CIRCLE過去60日間の顧客社会環境のデフォルト観察内容
DAYS_LAST_PHONE_CHANGE申し込み前何日前に電話を変更したか?
FLAG_DOCUMENT_2顧客から提供のあった資料2
FLAG_DOCUMENT_3顧客から提供のあった資料3
FLAG_DOCUMENT_4顧客から提供のあった資料4
FLAG_DOCUMENT_5顧客から提供のあった資料5
FLAG_DOCUMENT_6顧客から提供のあった資料6
FLAG_DOCUMENT_7顧客から提供のあった資料7
FLAG_DOCUMENT_8顧客から提供のあった資料8
FLAG_DOCUMENT_9顧客から提供のあった資料9
FLAG_DOCUMENT_10顧客から提供のあった資料10
FLAG_DOCUMENT_11顧客から提供のあった資料11
FLAG_DOCUMENT_12顧客から提供のあった資料12
FLAG_DOCUMENT_13顧客から提供のあった資料13
FLAG_DOCUMENT_14顧客から提供のあった資料14
FLAG_DOCUMENT_15顧客から提供のあった資料15
FLAG_DOCUMENT_16顧客から提供のあった資料16
FLAG_DOCUMENT_17顧客から提供のあった資料17
FLAG_DOCUMENT_18顧客から提供のあった資料18
FLAG_DOCUMENT_19顧客から提供のあった資料19
FLAG_DOCUMENT_20顧客から提供のあった資料20
FLAG_DOCUMENT_21顧客から提供のあった資料21
AMT_REQ_CREDIT_BUREAU_HOUR申請1時間前の顧客に関する信用調査機関への問い合わせ件数
AMT_REQ_CREDIT_BUREAU_DAY申請1日前の顧客に関する信用調査機関への問い合わせ件数
AMT_REQ_CREDIT_BUREAU_WEEK申請1週間前の顧客に関する信用調査機関への問い合わせ件数
AMT_REQ_CREDIT_BUREAU_MON申請1ヶ月前の顧客に関する信用調査機関への問い合わせ件数
AMT_REQ_CREDIT_BUREAU_QRT申請3ヶ月前の顧客に関する信用調査機関への問い合わせ件数
AMT_REQ_CREDIT_BUREAU_YEAR申請6ヶ月前の顧客に関する信用調査機関への問い合わせ件数
SK_ID_CURRローンサンプルID. 
SK_BUREAU_IDローンに関連する過去の信用会社の記録ID
CREDIT_ACTIVEレポートしているクレジットのステータス
CREDIT_CURRENCYクレジットの通貨
DAYS_CREDIT信用調査を申請の何日前に行ったか
CREDIT_DAY_OVERDUE関連ローンの遅延日数
DAYS_CREDIT_ENDDATE申請時のCBクレジットの残り期間日数
DAYS_ENDDATE_FACT申請時のCBクレジット終了からの日数
AMT_CREDIT_MAX_OVERDUE信用期間のクレジットで延滞している最大金額
CNT_CREDIT_PROLONG信用調査期間の信用延長回数
AMT_CREDIT_SUM信用調査期間の現在のクレジット金額
AMT_CREDIT_SUM_DEBT信用調査期間の現在の債務金額
AMT_CREDIT_SUM_LIMIT報告されている与信限度額
AMT_CREDIT_SUM_OVERDUE現在の延滞金額
CREDIT_TYPE信用調査機関のクレジットタイプ
DAYS_CREDIT_UPDATE最終情報受領日(ローン申請より何日まえか?)
AMT_ANNUITY信用調査機関クレジットの年金
SK_BUREAU_ID信用機関ID
MONTHS_BALANCE申請日に対する残高
STATUSその月の信用調査機関クレジットの状態
C: closed, X: unknown, 0: DPDなし, 1:DPD 1-30, 2:DPD 31-60, 5:DPD +120以上or売却・償却
DPD:期限がすぎた日数
SK_ID_PREV 過去のサンプルローンID
SK_ID_CURR現在のサンプルローンID
MONTHS_BALANCE申請日に対する残高
-1:最新月次データ 0:申請時の情報
CNT_INSTALMENT以前のクレジットの期間
CNT_INSTALMENT_FUTURE以前のクレジットにおける残り分割回数
NAME_CONTRACT_STATUSその月の契約状況
SK_DPD前のクレジットの延滞日数
SK_DPD_DEF許容範囲の延滞日数(DPD)
SK_ID_PREV 以前のクレジットID (Home credit社)
SK_ID_CURR現在のサンプルローンID
MONTHS_BALANCE申請日に対する月末残高
AMT_BALANCE前のクレジットの月末残高
AMT_CREDIT_LIMIT_ACTUAL前のクレジットの月次限度額
AMT_DRAWINGS_ATM_CURRENT前のクレジットでATMから引き出された額(月間)
AMT_DRAWINGS_CURRENT前のクレジットから引き出された額(月間)
AMT_DRAWINGS_OTHER_CURRENT過去のクレジットからその他で引き出された金額
AMT_DRAWINGS_POS_CURRENT加工のクレジット月で商品を引き出したり購入したりする金額
AMT_INST_MIN_REGULARITY過去のクレジットの最小分割払い
AMT_PAYMENT_CURRENT月々の支払い金額
AMT_PAYMENT_TOTAL_CURRENT過去のクレジットでの支払い総額
AMT_RECEIVABLE_PRINCIPAL前回のクレジットの元本
AMT_RECIVABLE過去のクレジットの売掛金
AMT_TOTAL_RECEIVABLE過去のクレジットの売掛合計金額
CNT_DRAWINGS_ATM_CURRENT過去のクレジットの当月のATM引出し数
CNT_DRAWINGS_CURRENT過去のクレジットの引出し数
CNT_DRAWINGS_OTHER_CURRENT過去のクレジットのその他の引出し数
CNT_DRAWINGS_POS_CURRENT過去のクレジットの商品の引き出し回数
CNT_INSTALMENT_MATURE_CUM過去のクレジットの支払い回数実績
NAME_CONTRACT_STATUS契約名称
SK_DPD過去のクレジットにおける支払い遅延日数
SK_DPD_DEF過去のクレジットの許容範囲の支払い遅延日数
SK_ID_PREV 過去のクレジットのID
SK_ID_CURRローンサンプルID.
NAME_CONTRACT_TYPE過去の申請の契約名称
AMT_ANNUITY過去の申請の年金
AMT_APPLICATION過去の申請の金額
AMT_CREDIT最終的な承認金額
AMT_DOWN_PAYMENT過去の申請の頭金
AMT_GOODS_PRICE要求した金額
WEEKDAY_APPR_PROCESS_START過去の申請を行った曜日
HOUR_APPR_PROCESS_START過去の申請を行ったおおよその時間
FLAG_LAST_APPL_PER_CONTRACTその契約における最後の新星かどうか?
NFLAG_LAST_APPL_IN_DAY1日あたりの最後の申請だったかどうか?
NFLAG_MICRO_CASHマイクロファイナンスローンだったかどうか?
RATE_DOWN_PAYMENT過去の申請の頭金率
RATE_INTEREST_PRIMARY過去の申請ローンの1次金利
RATE_INTEREST_PRIVILEGED過去の申請ローンの特約金利
NAME_CASH_LOAN_PURPOSEキャッシュローンの目的
NAME_CONTRACT_STATUS契約ステータス名称
DAYS_DECISION申請の比較
NAME_PAYMENT_TYPE前回の申請の支払い方法
CODE_REJECT_REASON申請却下理由
NAME_TYPE_SUITE申請時の同行者名
NAME_CLIENT_TYPE過去の申請の新旧顧客(?)
NAME_GOODS_CATEGORY過去申請時の商品種類
NAME_PORTFOLIO過去の申請のポートフォリオ
NAME_PRODUCT_TYPE過去の申請がx-sellかwalk-inか
CHANNEL_TYPE過去の申請で顧客を申請したチャンネル
SELLERPLACE_AREA過去申請の販売されたエリアまたは地点
NAME_SELLER_INDUSTRY売り手の産業種類
CNT_PAYMENT過去申請のクレジット期間
NAME_YIELD_GROUP過去申請の金利グループ
PRODUCT_COMBINATION過去申請の詳細組み合わせ
DAYS_FIRST_DRAWING申請日基準で何日後に初回の引き出しをしたか
DAYS_FIRST_DUE申請日基準で何日後に初回の申請をしたか
DAYS_LAST_DUE_1ST_VERSION申請日基準で何日前に1stバージョンの最終版を提出したか
DAYS_LAST_DUE最終提出日
DAYS_TERMINATION申請の予想終了期間
NFLAG_INSURED_ON_APPROVAL前回の申請時に保険を要求されたか?
SK_ID_PREV 過去のローンサンプルID
SK_ID_CURRローンサンプルID.
NUM_INSTALMENT_VERSION過去のクレジットの分割払いパターン
NUM_INSTALMENT_NUMBER分割払い回数
DAYS_INSTALMENT分割支払い予定日
DAYS_ENTRY_PAYMENT分割支払い実績日
AMT_INSTALMENT分割支払い予定金額
AMT_PAYMENT分割支払い実績金額

めちゃくちゃたくさんありますね。全てを使用すると訳分からなくなりそうなので、次回は少なめに抜粋して、ベースモデルを作成しようと思います。普通に前半にある顧客情報で十分予測できそうなものですが、過去のローン実績や調査会社のデータなんかもあるので、少しは反映してみたい気もします。

ということで次回はこれらのカラムについて解析に盛り込む重要度を定めていこうと思います。

コメントを残す

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

CAPTCHA


Related Post