Zacznij terazZacznij za darmo

Tworzenie predykcji binarnej

W poprzednim ćwiczeniu użyto funkcji glm() do zbudowania modelu regresji logistycznej opisującego zachowanie darczyńców. Podobnie jak w przypadku wielu metod uczenia maszynowego w R, do obiektu modelu można zastosować funkcję predict(), aby prognozować przyszłe zachowania. Domyślnie predict() zwraca predykcje jako logarytm szans (log odds), chyba że zostanie podany argument type = "response". Wówczas logarytm szans jest przeliczany na prawdopodobieństwa.

Ponieważ model regresji logistycznej szacuje prawdopodobieństwo wystąpienia zdarzenia, to od ciebie zależy ustalenie progu, powyżej którego prawdopodobieństwo implikuje podjęcie działania. Trzeba zachować równowagę między nadmierną ostrożnością a zbyt agresywnym podejściem. Na przykład – gdybyś kierował komunikację wyłącznie do osób z prawdopodobieństwem darowizny na poziomie co najmniej 99%, możesz pominąć wiele osób o niższym szacowanym prawdopodobieństwie, które i tak zdecydowałyby się przekazać darowiznę. Ta równowaga jest szczególnie istotna w przypadku silnie niezbalansowanych wyników, jak w tym zbiorze danych, gdzie darowizny zdarzają się stosunkowo rzadko.

Zbiór danych donors oraz model donation_model są dostępne do użycia.

To ćwiczenie jest częścią kursu

Nadzorowane uczenie maszynowe w R: Klasyfikacja

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj funkcji predict(), aby oszacować prawdopodobieństwo darowizny dla każdej osoby. Skorzystaj z argumentu type, aby uzyskać prawdopodobieństwa. Przypisz wyniki do nowej kolumny o nazwie donation_prob.
  • Znajdź rzeczywiste prawdopodobieństwo, że przeciętna osoba przekaże darowiznę, przekazując funkcji mean() odpowiednią kolumnę ramki danych donors.
  • Użyj funkcji ifelse(), aby przewidzieć darowiznę, jeśli szacowane prawdopodobieństwo darowizny danej osoby jest wyższe od średniej. Przypisz wyniki do nowej kolumny o nazwie donation_pred.
  • Użyj funkcji mean(), aby obliczyć dokładność modelu.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(___ == ___)
Edytuj i uruchom kod