X6 ~ X11 の値の書き換え
X6 ~ X11 とは
X6 ~ X11の列は支払いがどれくらい遅れているかを表しています。
しかし、 X6 ~ X11 の値の意味 にあるように、「支払いなし」や「リボ払い」も区別して表現されています。
このために、X6列からX11列は「-2」や「-1」といった値が含まれます。
どう扱うか
「支払いなし」も「リボ払い」も、「 遅延していない 」という点で一つにまとめられるのではないかと思いました。
そこで、以下のようなコードで「-2(支払いなし)」「-1(全額支払い済み)」「0(リボ払い)」をすべて「0」に変更しました。
import pandas as pd
train = pd.read_csv('train_data.csv')
test = pd.read_csv('test_data.csv')
column_names = ['X6','X7','X8','X9','X10','X11']
for column_name in column_names:
train.loc[train[column_name] < 0, column_name] = 0
test.loc[train[column_name] < 0, column_name] = 0
結果
私が用いたモデルでは、書き換える前のスコア(コンペに提出したもの)が 0.824
だったのに対し、書き換えた後は 0.829
に向上しました。
偶然の結果の可能性もありますので、皆さんのモデルでスコアがどのように変化するのか知りたいです。