Evitando desbalanceamentos de classe
Alguns dados têm resultados muito desbalanceados — como um conjunto de dados sobre uma doença rara. Ao dividir aleatoriamente, você pode acabar com uma divisão bem infeliz. Imagine que todas as observações raras fiquem no teste e nenhuma no treinamento. Isso arruinaria todo o seu processo de treinamento!
Felizmente, a função initial_split() traz uma solução. Neste exercício, você vai observar e resolver esses chamados desbalanceamentos de classe.
Já há código fornecido para criar um objeto de divisão diabetes_split com 75% para treinamento e 25% para teste.
Este exercício faz parte do curso
Machine Learning com modelos baseados em árvores em R
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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))