Eine binäre Vorhersage treffen
In der vorherigen Übung hast du mit der Funktion glm() ein logistisches Regressionsmodell zum Spenderverhalten erstellt. Wie bei vielen Machine-Learning-Methoden in R kannst du mit predict() auf dem Modellobjekt zukünftiges Verhalten vorhersagen. Standardmäßig gibt predict() Vorhersagen als Log-Odds aus, es sei denn, type = "response" wird angegeben. Das wandelt die Log-Odds in Wahrscheinlichkeiten um.
Da ein logistisches Regressionsmodell die Wahrscheinlichkeit des Ergebnisses schätzt, liegt es an dir, den Schwellenwert festzulegen, ab dem die Wahrscheinlichkeit eine Aktion nahelegt. Du musst zwischen zu vorsichtig und zu aggressiv abwägen. Wenn du zum Beispiel nur Personen mit einer Spendenwahrscheinlichkeit von 99 % oder mehr ansprichst, entgehen dir möglicherweise viele mit niedriger geschätzter Wahrscheinlichkeit, die dennoch spenden. Dieses Gleichgewicht ist besonders wichtig bei stark unausgewogenen Zielgrößen, wie in diesem Datensatz, in dem Spenden relativ selten sind.
Der Datensatz donors und das Modell donation_model stehen dir zur Verfügung.
Diese Übung ist Teil des Kurses
Überwachtes Lernen in R: Klassifikation
Anleitung zur Übung
- Verwende
predict(), um die Spendenwahrscheinlichkeit jeder Person zu schätzen. Nutze das Argumenttype, um Wahrscheinlichkeiten zu erhalten. Speichere die Vorhersagen in einer neuen Spaltedonation_prob. - Ermittle die tatsächliche Wahrscheinlichkeit, dass eine durchschnittliche Person spendet, indem du
mean()die passende Spalte des Dataframesdonorsübergibst. - Verwende
ifelse(), um eine Spende vorherzusagen, wenn die vorhergesagte Spendenwahrscheinlichkeit über dem Durchschnitt liegt. Speichere die Vorhersagen in einer neuen Spaltedonation_pred. - Verwende die Funktion
mean(), um die Genauigkeit des Modells zu berechnen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(___ == ___)