पायथन में कन्फ्यूजन मैट्रिक्स कैसे बनाएं


लॉजिस्टिक रिग्रेशन एक प्रकार का रिग्रेशन है जिसका उपयोग हम तब कर सकते हैं जब प्रतिक्रिया चर द्विआधारी हो।

लॉजिस्टिक रिग्रेशन मॉडल की गुणवत्ता का आकलन करने का एक सामान्य तरीका एक भ्रम मैट्रिक्स बनाना है, जो एक 2 × 2 तालिका है जो मॉडल के अनुमानित मूल्यों बनाम परीक्षण डेटासेट के वास्तविक मूल्यों को दिखाती है।

पायथन में लॉजिस्टिक रिग्रेशन मॉडल के लिए कन्फ्यूजन मैट्रिक्स बनाने के लिए, हम स्केलेर पैकेज से कन्फ्यूजन_मैट्रिक्स () फ़ंक्शन का उपयोग कर सकते हैं:

 from sklearn import metrics
metrics.metrics. confusion_matrix (y_actual, y_predicted)

निम्नलिखित उदाहरण दिखाता है कि पायथन में लॉजिस्टिक रिग्रेशन मॉडल के लिए भ्रम मैट्रिक्स बनाने के लिए इस फ़ंक्शन का उपयोग कैसे करें।

उदाहरण: पायथन में कन्फ्यूजन मैट्रिक्स बनाना

मान लीजिए कि हमारे पास निम्नलिखित दो तालिकाएँ हैं जिनमें एक प्रतिक्रिया चर के वास्तविक मूल्यों के साथ-साथ एक लॉजिस्टिक रिग्रेशन मॉडल द्वारा अनुमानित मान शामिल हैं:

 #define array of actual values
y_actual = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

#define array of predicted values
y_predicted = [0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]

हम इस डेटा के लिए कन्फ्यूजन मैट्रिक्स बनाने के लिए स्केलेर के कन्फ्यूजन_मैट्रिक्स() फ़ंक्शन का उपयोग कर सकते हैं:

 from sklearn import metrics

#create confusion matrix
c_matrix = metrics. confusion_matrix (y_actual, y_predicted)

#print confusion matrix
print (c_matrix)

[[6 4]
 [2 8]]

यदि हम चाहें, तो हम अधिक आकर्षक भ्रम मैट्रिक्स बनाने के लिए पांडा के क्रॉसस्टैब() फ़ंक्शन का उपयोग कर सकते हैं:

 import pandas as pd

y_actual = pd. Series (y_actual, name=' Actual ')
y_predicted = pd. Series (y_predicted, name=' Predicted ')

#create confusion matrix
print (pd. crosstab (y_actual, y_predicted))

Predicted 0 1
Current         
0 6 4
1 2 8

कॉलम प्रतिक्रिया चर के लिए अनुमानित मान दिखाते हैं और पंक्तियाँ वास्तविक मान दिखाती हैं।

हम स्केलेरन पैकेज में फ़ंक्शंस का उपयोग करके सटीकता, परिशुद्धता और रिकॉल की गणना भी कर सकते हैं:

 #print accuracy of model
print ( metrics.accuracy_score (y_actual, y_predicted))

0.7

#print precision value of model
print ( metrics.precision_score (y_actual, y_predicted))

0.667

#print recall value of model
print (metrics. recall_score (y_actual, y_predicted))

0.8

यहां सटीकता, परिशुद्धता और स्मरण पर एक त्वरित पुनश्चर्या है:

  • सटीकता : सही भविष्यवाणियों का प्रतिशत
  • सटीकता : कुल सकारात्मक भविष्यवाणियों के सापेक्ष सकारात्मक भविष्यवाणियों को सही करें
  • अनुस्मारक : कुल वास्तविक सकारात्मकताओं के विरुद्ध सकारात्मक भविष्यवाणियों को सही करना

और यहां बताया गया है कि हमारे उदाहरण में इनमें से प्रत्येक मीट्रिक की गणना वास्तव में कैसे की गई थी:

  • सटीकता : (6+8) / (6+4+2+8) = 0.7
  • सटीकता : 8 / (8+4) = 0.667
  • अनुस्मारक : 8 / (2+8) = 0.8

अतिरिक्त संसाधन

लॉजिस्टिक रिग्रेशन का परिचय
लॉजिस्टिक रिग्रेशन के 3 प्रकार
लॉजिस्टिक रिग्रेशन बनाम लीनियर रिग्रेशन

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *