İkili bir tahmin yapmak
Önceki egzersizde, bağışçı davranışını modellemek için glm() fonksiyonunu kullanarak bir lojistik regresyon modeli kurdun. R'deki birçok Machine Learning yönteminde olduğu gibi, gelecekteki davranışı öngörmek için predict() fonksiyonunu model nesnesine uygulayabilirsin. Varsayılan olarak predict(), type = "response" belirtilmedikçe tahminleri logit (log odds) cinsinden verir. Bu argüman logit değerlerini olasılıklara dönüştürür.
Lojistik regresyon modeli çıktının olasılığını tahmin ettiği için, bu olasılığın eylem anlamına geldiği eşiği belirlemek sana kalır. Aşırı temkinli olmak ile fazla agresif olmak arasında bir denge kurmak gerekir. Örneğin, yalnızca bağış olasılığı %99 veya daha yüksek olan kişilere ulaşsaydın, daha düşük tahmini olasılıklara sahip olup yine de bağış yapmayı seçen birçok kişiyi kaçırabilirdin. Bu denge, bu veri kümesinde olduğu gibi bağışların nispeten nadir görüldüğü şiddetle dengesiz sonuçlar için özellikle önemlidir.
donors veri kümesi ve donation_model modeli kullanımın için hazır.
Bu egzersiz, kursun bir parçasıdır
R'de Supervised Learning: Sınıflandırma
Egzersiz talimatları
- Her kişinin bağış olasılığını tahmin etmek için
predict()fonksiyonunu kullan. Olasılıkları almak içintypeargümanını kullan. Tahminleridonation_probadlı yeni bir sütuna ata. - Ortalama bir kişinin bağış yapma olasılığını,
donorsveri çerçevesindeki uygun sütunumean()fonksiyonuna vererek bul. - Tahmin edilen bağış olasılığı ortalamadan büyükse bağış yapılacağını
ifelse()ile tahmin et. Tahminleridonation_predadlı yeni bir sütuna ata. - Modelin doğruluğunu hesaplamak için
mean()fonksiyonunu kullan.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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(___ == ___)