クラス不均衡を避ける
まれな疾患のデータセットのように、結果が大きく偏っているデータもあります。無作為に分割すると、運悪く偏った分割になることがあります。たとえば、まれな観測がすべてテストに入り、学習データには1つもない、といったケースです。これでは学習が台無しになってしまいます。
幸い、initial_split() 関数にはその対策があります。この演習では、いわゆる「クラス不均衡」を観察し、解決していきます。
すでに、学習75%・テスト25%で分割するスプリットオブジェクト diabetes_split を作成するコードが用意されています。
この演習はコースの一部です
Rで学ぶTree-Based ModelsによるMachine Learning
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Preparation
set.seed(9888)
diabetes_split <- initial_split(diabetes, prop = 0.75)
# Proportion of 'yes' outcomes in the training data
counts_train <- table(training(___)$outcome)
prop_yes_train <- counts_train["___"] / sum(counts_train)
# Proportion of 'yes' outcomes in the test data
counts_test <- table(___)
prop_yes_test <- ___ / sum(___)
paste("Proportion of positive outcomes in training set:", round(prop_yes_train, 2))
paste("Proportion of positive outcomes in test set:", round(prop_yes_test, 2))