Subamostrando o conjunto de treino
No vídeo, você viu que, para contornar o problema de dados desbalanceados, é possível usar subamostragem (undersampling) ou superamostragem (oversampling). O conjunto de treino foi subamostrado para você, de modo que 1/3 do conjunto seja composto por inadimplências e 2/3 por não inadimplências. O conjunto resultante está disponível no seu workspace com o nome undersampled_training_set e contém menos observações (6570 em vez de 19394). Neste exercício, você vai criar uma árvore de decisão usando esse conjunto subamostrado.
Você vai notar que as árvores neste e no próximo exercício são bem grandes — a ponto de não dar para ler direito. Não se preocupe com isso agora; no próximo vídeo, vamos mostrar como torná-las mais manejáveis!
Este exercício faz parte do curso
Modelagem de Risco de Crédito em R
Instruções do exercício
- O pacote rpart já foi instalado para você. Carregue o pacote no seu workspace.
- Altere o código fornecido para construir uma árvore de decisão usando o conjunto de treino subamostrado em vez de
training_set. Além disso, adicione o argumentocontrol = rpart.control(cp = 0.001).cp, o parâmetro de complexidade, é o valor limite para a redução no erro global de ajuste em qualquer divisão. Secpnão for atendido, novas divisões não serão buscadas. O valor padrão decpé 0.01, mas para problemas complexos recomenda-se relaxarcp. - Plote a árvore de decisão usando a função plot e o nome do objeto da árvore. Adicione um segundo argumento
uniform = TRUEpara obter ramos de tamanho igual. - O comando anterior apenas cria uma árvore com alguns nós e arestas, mas sem texto (os chamados "rótulos"). Use a função
text()com o único argumentotree_undersamplepara adicionar os rótulos.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Load package rpart in your workspace.
# Change the code provided in the video such that a decision tree is constructed using the undersampled training set. Include rpart.control to relax the complexity parameter to 0.001.
tree_undersample <- rpart(loan_status ~ ., method = "class",
data = training_set)
# Plot the decision tree
# Add labels to the decision tree