Fazendo uma previsão binária
No exercício anterior, você usou a função glm()
para criar um modelo de regressão logística do comportamento do doador. Como em muitos dos métodos de machine learning do R, você pode aplicar a função predict()
ao objeto do modelo para prever o comportamento futuro. Por padrão, predict()
produz previsões em termos de probabilidades de log, a menos que type = "response"
seja especificado. Isso converte as probabilidades logarítmicas em probabilidades.
Como um modelo de regressão logística estima a probabilidade do resultado, cabe a você determinar o limite no qual a probabilidade implica ação. É preciso equilibrar os extremos de ser muito cauteloso e ser muito agressivo. Por exemplo, se você solicitar apenas as pessoas com probabilidade de doação igual ou superior a 99%, poderá perder muitas pessoas com probabilidades estimadas mais baixas que ainda assim optarão por doar. É particularmente importante considerar esse equilíbrio para resultados gravemente desequilibrados, como neste conjunto de dados em que as doações são relativamente raras.
O conjunto de dados donors
e o modelo donation_model
estão disponíveis para você usar.
Este exercício faz parte do curso
Aprendizagem supervisionada em R: Classificação
Instruções do exercício
- Use a função
predict()
para estimar a probabilidade de doação de cada pessoa. Use o argumentotype
para obter probabilidades. Atribua as previsões a uma nova coluna chamadadonation_prob
. - Encontre a probabilidade real de uma pessoa média doar passando a função
mean()
para a coluna apropriada do quadro de dadosdonors
. - Use o site
ifelse()
para prever uma doação se a probabilidade de doação prevista for maior que a média. Atribua as previsões a uma nova coluna chamadadonation_pred
. - Use a função
mean()
para calcular a precisão do modelo.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Estimate the donation probability
donors$donation_prob <- predict(___, type = "___")
# Find the donation probability of the average prospect
mean(___)
# Predict a donation if probability of donation is greater than average (0.0504)
donors$donation_pred <- ifelse(___ > 0.0504, ___, ___)
# Calculate the model's accuracy
mean(___ == ___)