Een binaire voorspelling maken
In de vorige oefening heb je met de functie glm() een logistiek regressiemodel van donateursgedrag gebouwd. Net als bij veel Machine Learning-methoden in R kun je de functie predict() toepassen op het modelobject om toekomstig gedrag te voorspellen. Standaard geeft predict() voorspellingen in termen van log odds, tenzij je type = "response" opgeeft. Dit zet de log odds om naar kansen.
Omdat een logistiek regressiemodel de kans op de uitkomst schat, bepaal je zelf bij welke drempel de kans tot actie leidt. Je moet daarbij balanceren tussen te voorzichtig en te agressief zijn. Als je bijvoorbeeld alleen mensen zou benaderen met een donatiekans van 99% of hoger, mis je mogelijk veel mensen met lagere geschatte kansen die toch doneren. Deze balans is extra belangrijk bij sterk scheve uitkomsten, zoals in deze gegevensset waar donaties relatief zeldzaam zijn.
De gegevensset donors en het model donation_model zijn beschikbaar voor je om te gebruiken.
Deze oefening maakt deel uit van de cursus
Supervised Learning in R: Classificatie
Oefeninstructies
- Gebruik de functie
predict()om ieders donatiekans te schatten. Gebruik het argumenttypeom kansen te krijgen. Zet de voorspellingen in een nieuwe kolomdonation_prob. - Bepaal de werkelijke kans dat een gemiddelde persoon doneert door de juiste kolom van de
donors-dataframe aan de functiemean()door te geven. - Gebruik
ifelse()om een donatie te voorspellen als hun voorspelde donatiekans groter is dan gemiddeld. Zet de voorspellingen in een nieuwe kolomdonation_pred. - Gebruik de functie
mean()om de nauwkeurigheid van het model te berekenen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(___ == ___)