बाइनरी प्रेडिक्शन बनाना
पिछले अभ्यास में, आपने दाता व्यवहार का लॉजिस्टिक रिग्रेशन मॉडल बनाने के लिए glm() फ़ंक्शन का उपयोग किया था. R की कई मशीन लर्निंग विधियों की तरह, आप भविष्य के व्यवहार का पूर्वानुमान लगाने के लिए मॉडल ऑब्जेक्ट पर predict() फ़ंक्शन लगा सकते हैं. डिफ़ॉल्ट रूप से, predict() तब तक भविष्यवाणियाँ log odds के रूप में देता है जब तक आप type = "response" निर्दिष्ट नहीं करते. यह log odds को probabilities में बदल देता है.
क्योंकि एक लॉजिस्टिक रिग्रेशन मॉडल परिणाम की प्रायिकता का अनुमान लगाता है, इसलिए यह तय करना आपके ऊपर है कि किस थ्रेशोल्ड पर यह प्रायिकता कार्रवाई का संकेत देती है. बहुत सतर्क रहने और बहुत आक्रामक होने के बीच संतुलन बनाना चाहिए. उदाहरण के लिए, यदि आप केवल उन लोगों से अनुरोध करें जिनकी डोनेशन प्रायिकता 99% या अधिक है, तो आप कई ऐसे लोगों को खो सकते हैं जिनकी अनुमानित प्रायिकता कम है, लेकिन वे फिर भी दान करने का चुनाव करते हैं. यह संतुलन विशेष रूप से तब महत्वपूर्ण होता है जब परिणाम बहुत असंतुलित हों, जैसे इस डेटासेट में जहाँ डोनेशन अपेक्षाकृत दुर्लभ हैं.
डेटासेट donors और मॉडल donation_model आपके उपयोग के लिए उपलब्ध हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में Supervised Learning: Classification
अभ्यास निर्देश
- प्रत्येक व्यक्ति की डोनेशन प्रायिकता अनुमानित करने के लिए
predict()फ़ंक्शन का उपयोग करें. प्रायिकताएँ पाने के लिएtypeआर्ग्युमेंट का उपयोग करें. भविष्यवाणियों कोdonation_probनाम के नए कॉलम में असाइन करें. - किसी औसत व्यक्ति के दान करने की वास्तविक प्रायिकता निकालने के लिए
donorsडेटा फ़्रेम के उपयुक्त कॉलम कोmean()फ़ंक्शन में पास करें. - यदि किसी व्यक्ति की अनुमानित डोनेशन प्रायिकता औसत से अधिक हो, तो दान का प्रेडिक्शन करने के लिए
ifelse()का उपयोग करें. भविष्यवाणियों कोdonation_predनाम के नए कॉलम में असाइन करें. - मॉडल की सटीकता गणना करने के लिए
mean()फ़ंक्शन का उपयोग करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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(___ == ___)