Realizarea unei predicții binare
În exercițiul anterior, ai folosit funcția glm() pentru a construi un model de regresie logistică al comportamentului donatorilor. Ca în cazul multor metode de învățare automată din R, poți aplica funcția predict() asupra obiectului model pentru a anticipa comportamentul viitor. Implicit, predict() returnează predicțiile sub formă de log-probabilități (log odds), dacă nu specifici type = "response". Această opțiune convertește log-probabilitățile în probabilități.
Deoarece un model de regresie logistică estimează probabilitatea unui rezultat, ție îți revine sarcina de a stabili pragul de la care probabilitatea implică o acțiune. Trebuie să găsești echilibrul între a fi prea prudent și a fi prea agresiv. De exemplu, dacă ai solicita doar persoanele cu o probabilitate de donație de 99% sau mai mare, ai putea rata multe persoane cu probabilități estimate mai mici, care totuși aleg să doneze. Acest echilibru este deosebit de important când rezultatele sunt puternic dezechilibrate – ca în acest set de date, unde donațiile sunt relativ rare.
Setul de date donors și modelul donation_model sunt disponibile pentru a fi utilizate.
Acest exercițiu face parte din cursul
Supervised Learning în R: Clasificare
Instrucțiuni pentru exercițiu
- Folosește funcția
predict()pentru a estima probabilitatea de donație a fiecărei persoane. Utilizează argumentultypepentru a obține probabilități. Atribuie predicțiile unei noi coloane numitedonation_prob. - Determină probabilitatea reală că o persoană obișnuită ar dona, pasând funcției
mean()coloana corespunzătoare din cadrul de datedonors. - Folosește
ifelse()pentru a prezice o donație dacă probabilitatea estimată de donație este mai mare decât media. Atribuie predicțiile unei noi coloane numitedonation_pred. - Folosește funcția
mean()pentru a calcula acuratețea modelului.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(___ == ___)