आर में कन्फ्यूजन मैट्रिक्स कैसे बनाएं (चरण दर चरण)
लॉजिस्टिक रिग्रेशन एक प्रकार का रिग्रेशन है जिसका उपयोग हम तब कर सकते हैं जब प्रतिक्रिया चर द्विआधारी हो।
लॉजिस्टिक रिग्रेशन मॉडल की गुणवत्ता का आकलन करने का एक सामान्य तरीका एक भ्रम मैट्रिक्स बनाना है, जो एक 2 × 2 तालिका है जो मॉडल के अनुमानित मूल्यों बनाम परीक्षण डेटासेट के वास्तविक मूल्यों को दिखाती है।
निम्नलिखित चरण-दर-चरण उदाहरण दिखाता है कि आर में भ्रम मैट्रिक्स कैसे बनाया जाए।
चरण 1: लॉजिस्टिक रिग्रेशन मॉडल को फिट करें
इस उदाहरण के लिए, हम आईएसएलआर पैकेज से डिफ़ॉल्ट डेटासेट का उपयोग करेंगे। हम इस संभावना का अनुमान लगाने के लिए छात्र स्थिति, बैंक शेष और वार्षिक आय का उपयोग करेंगे कि कोई व्यक्ति अपने ऋण पर चूक करेगा।
निम्नलिखित कोड दिखाता है कि इस डेटासेट में लॉजिस्टिक रिग्रेशन मॉडल को कैसे फिट किया जाए:
#load necessary packages library (caret) library (InformationValue) library (ISLR) #load dataset data <-Default #split dataset into training and testing set set. seeds (1) sample <- sample(c(TRUE, FALSE), nrow(data), replace= TRUE , prob=c(0.7,0.3)) train <- data[sample, ] test <- data[!sample, ] #fit logistic regression model model <- glm(default~student+balance+income, family=" binomial ", data=train)
चरण 2: कन्फ्यूजन मैट्रिक्स बनाएं
इसके बाद, हम कन्फ्यूजन मैट्रिक्स बनाने के लिए कैरेट पैकेज से कन्फ्यूजनमैट्रिक्स() फ़ंक्शन का उपयोग करेंगे:
#use model to predict probability of default
predicted <- predict(model, test, type="response")
#convert defaults from "Yes" and "No" to 1's and 0's
test$default <- ifelse(test$default==" Yes ", 1, 0)
#find optimal cutoff probability to use to maximize accuracy
optimal <- optimalCutoff(test$default, predicted)[1]
#create confusion matrix
confusionMatrix(test$default, predicted)
0 1
0 2912 64
1 21 39
चरण 3: भ्रम मैट्रिक्स का मूल्यांकन करें
हम कन्फ्यूजन मैट्रिक्स का उपयोग करके निम्नलिखित मैट्रिक्स की भी गणना कर सकते हैं:
- संवेदनशीलता: “सच्ची सकारात्मकता दर” – मॉडल द्वारा सही ढंग से भविष्यवाणी की गई व्यक्तियों का प्रतिशत डिफ़ॉल्ट होगा।
- विशिष्टता: “सच्ची नकारात्मक दर” – मॉडल द्वारा सही ढंग से भविष्यवाणी की गई व्यक्तियों का प्रतिशत डिफ़ॉल्ट नहीं होगा।
- कुल गलत वर्गीकरण दर: मॉडल द्वारा किए गए कुल गलत वर्गीकरण का प्रतिशत।
निम्नलिखित कोड दिखाता है कि इन मैट्रिक्स की गणना कैसे करें:
#calculate sensitivity
sensitivity(test$default, predicted)
[1] 0.3786408
#calculate specificity
specificity(test$default, predicted)
[1] 0.9928401
#calculate total misclassification error rate
misClassError(test$default, predicted, threshold =optimal)
[1] 0.027
इस मॉडल के लिए कुल वर्गीकरण त्रुटि दर 2.7% है।
सामान्य तौर पर, यह दर जितनी कम होगी, मॉडल उतना ही बेहतर परिणामों की भविष्यवाणी करने में सक्षम होगा। इसलिए यह विशेष मॉडल यह अनुमान लगाने में बहुत प्रभावी साबित होता है कि कोई व्यक्ति डिफ़ॉल्ट होगा या नहीं।