始める無料で始める

学習データのアンダーサンプリング

ここでは、Pandas を使って数行のコードで学習用データをアンダーサンプリングしてみます。アンダーサンプリングが終わったら、loan_status の値の件数を確認して結果を検証しましょう。

X_y_traincount_nondefaultcount_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で学ぶクレジットリスクモデリング

コースを見る

演習の手順

  • 不履行でないデータと不履行データの集合を作成し、それぞれ nondefaultsdefaults に保存します。
  • nondefaultscount_default と同じ件数にサンプリングし、nondefaults_under に保存します。
  • .concat() を使って nondefaultsdefaults を連結し、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(____[____].____())
コードを編集して実行