学習データのアンダーサンプリング
ここでは、Pandas を使って数行のコードで学習用データをアンダーサンプリングしてみます。アンダーサンプリングが終わったら、loan_status の値の件数を確認して結果を検証しましょう。
X_y_train、count_nondefault、count_default はすでにワークスペースに読み込まれています。これらは次のコードで作成されています。
X_y_train = pd.concat([X_train.reset_index(drop = True),
y_train.reset_index(drop = True)], axis = 1)
count_nondefault, count_default = X_y_train['loan_status'].value_counts()
元の学習データに対する .value_counts() は自動的に表示されます。
この演習はコースの一部です
Pythonで学ぶクレジットリスクモデリング
演習の手順
- 不履行でないデータと不履行データの集合を作成し、それぞれ
nondefaultsとdefaultsに保存します。 nondefaultsをcount_defaultと同じ件数にサンプリングし、nondefaults_underに保存します。.concat()を使ってnondefaultsとdefaultsを連結し、X_y_train_underに保存します。- 新しいデータセットに対して、loan status の
.value_counts()を表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create data sets for defaults and non-defaults
____ = ____[____[____] == 0]
____ = ____[____[____] == 1]
# Undersample the non-defaults
____ = nondefaults.sample(____)
# Concatenate the undersampled nondefaults with defaults
____ = pd.____([____.reset_index(drop = True),
____.reset_index(drop = True)], axis = 0)
# Print the value counts for loan status
print(____[____].____())