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 donneurs. Comme pour de nombreuses méthodes d'apprentissage automatique de R, vous pouvez appliquer la fonction predict()
à l'objet du modèle pour prévoir son comportement futur. Par défaut, predict()
produit des prédictions en termes de logarithme des chances, à moins que type = "response"
ne soit spécifié. Cette opération convertit les logarithmes des chances en probabilités.
Étant donné qu'un modèle de régression logistique estime la probabilité du résultat, il vous appartient de déterminer le seuil à partir duquel la probabilité implique une action. Il faut trouver un équilibre entre les extrêmes que sont une trop grande prudence et une trop grande agressivité. Par exemple, si vous ne sollicitez que les personnes dont la probabilité de don est égale ou supérieure à 99 %, vous risquez de passer à côté de nombreuses personnes dont la probabilité de don est plus faible, mais qui choisissent tout de même de faire un don. Cet équilibre est particulièrement important à prendre en compte pour les résultats fortement déséquilibrés, comme dans cet ensemble de données où les dons sont relativement rares.
Le jeu de données donors
et le modèle donation_model
sont à votre disposition.
Cet exercice fait partie du cours
Apprentissage supervisé en R : Classification
Instructions
- Utilisez la fonction
predict()
pour estimer la probabilité de don de chaque personne. Utilisez l'argumenttype
pour obtenir des probabilités. Attribuez 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 cadre de donnéesdonors
. - Utilisez
ifelse()
pour prédire un don si la probabilité de don prédite est supérieure à la moyenne. Affectez 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 cet exemple de code.
# 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(___ == ___)