Binární předpověď
V předchozím cvičení jsi pomocí funkce glm() sestavil/a model logistické regrese pro chování dárců. Stejně jako u většiny metod strojového učení v R můžeš na objekt modelu aplikovat funkci predict() a předpovídat budoucí chování. Výchozí výstup funkce predict() jsou predikce v podobě logaritmických šancí (log odds), pokud nezadáš type = "response". Tato volba převede logaritmické šance na pravděpodobnosti.
Protože model logistické regrese odhaduje pravděpodobnost výsledku, je na tobě, abys určil/a práh, při kterém pravděpodobnost naznačuje konkrétní akci. Je nutné najít rovnováhu mezi přílišnou opatrností a přílišnou agresivitou. Kdybys například oslovil/a jen lidi s pravděpodobností daru 99 % a více, mohl/a bys přijít o mnoho lidí s nižší odhadovanou pravděpodobností, kteří by přesto darovali. Tato rovnováha je zvláště důležitá u silně nevyvážených výsledků – jako v tomto datasetu, kde jsou dary relativně vzácné.
Dataset donors a model donation_model máš k dispozici.
Toto cvičení je součástí kurzu
Supervised Learning v R: Klasifikace
Pokyny k cvičení
- Pomocí funkce
predict()odhadni pravděpodobnost daru pro každou osobu. Použij argumenttypepro získání pravděpodobností. Výsledné predikce ulož do nového sloupcedonation_prob. - Zjisti skutečnou pravděpodobnost, že průměrná osoba přispěje, předáním příslušného sloupce datového rámce
donorsfunkcimean(). - Pomocí
ifelse()předpověz dar v případě, že odhadovaná pravděpodobnost daru je vyšší než průměr. Výsledné predikce ulož do nového sloupcedonation_pred. - Pomocí funkce
mean()vypočítej přesnost modelu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(___ == ___)