Faire une prédiction binaire
Dans l'exercice précédent, vous avez utilisé la fonction glm() pour construire un modèle de régression logistique du comportement des donateurs. Comme pour plusieurs méthodes de Machine Learning de R, vous pouvez appliquer la fonction predict() à l'objet du modèle pour prévoir un comportement futur. Par défaut, predict() produit des prédictions en termes de log-cotes à moins que type = "response" ne soit précisé. Cet argument convertit les log-cotes en probabilités.
Comme un modèle de régression logistique estime la probabilité de l'issue, c'est à vous de déterminer le seuil à partir duquel la probabilité implique une action. Il faut trouver un juste milieu entre être trop prudent et trop agressif. Par exemple, si vous ne sollicitez que les personnes ayant une probabilité de don d'au moins 99 %, vous risquez de passer à côté de nombreuses personnes avec une probabilité estimée plus faible qui choisiraient tout de même de donner. Cet équilibre est particulièrement important lorsque l'issue est très déséquilibrée, comme dans ce jeu de données où les dons sont relativement rares.
Le jeu de données donors et le modèle donation_model sont à votre disposition.
Cette activité fait partie du cours
Apprentissage supervisé en R : Classification
Instructions de l’exercice
- Utilisez la fonction
predict()pour estimer la probabilité de don de chaque personne. Utilisez l'argumenttypepour obtenir des probabilités. Assignez les prédictions à une nouvelle colonne appeléedonation_prob. - Trouvez la probabilité réelle qu'une personne moyenne fasse un don en passant à la fonction
mean()la colonne appropriée du tableau de donnéesdonors. - Utilisez
ifelse()pour prédire un don si sa probabilité de don prédite est supérieure à la moyenne. Assignez les prédictions à une nouvelle colonne appeléedonation_pred. - Utilisez la fonction
mean()pour calculer la précision du modèle.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(___ == ___)