Kom igångKom igång gratis

Göra en binär förutsägelse

I föregående övning använde du funktionen glm() för att bygga en logistisk regressionsmodell av donatorernas beteende. Precis som med många av R:s maskininlärningsmetoder kan du använda funktionen predict() på modellobjektet för att förutsäga framtida beteende. Som standard returnerar predict() förutsägelser i form av log-odds, om inte type = "response" anges. Det konverterar log-odds till sannolikheter.

Eftersom en logistisk regressionsmodell skattar sannolikheten för ett utfall är det upp till dig att fastställa det tröskelvärde vid vilket sannolikheten motiverar en åtgärd. Man behöver balansera två ytterligheter: att vara för försiktig kontra för aggressiv. Om du till exempel bara kontaktar personer med minst 99 % donationssannolikhet kan du missa många med lägre skattad sannolikhet som ändå väljer att donera. Den här balansen är särskilt viktig att beakta när utfallet är kraftigt obalanserat – som i det här datasetet där donationer är relativt sällsynta.

Datasetet donors och modellen donation_model finns tillgängliga för dig att använda.

Den här övningen är en del av kursen

Övervakat lärande i R: Klassificering

Visa kurs

Övningsinstruktioner

  • Använd funktionen predict() för att skatta varje persons donationssannolikhet. Använd argumentet type för att få sannolikheter. Tilldela förutsägelserna till en ny kolumn som heter donation_prob.
  • Ta reda på den faktiska sannolikheten att en genomsnittlig person donerar genom att skicka rätt kolumn från dataramen donors till funktionen mean().
  • Använd ifelse() för att förutsäga en donation om personens skattade donationssannolikhet är högre än genomsnittet. Tilldela förutsägelserna till en ny kolumn som heter donation_pred.
  • Använd funktionen mean() för att beräkna modellens träffsäkerhet.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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(___ == ___)
Redigera och kör kod