पायथन में एयूसी (वक्र के नीचे का क्षेत्र) की गणना कैसे करें
लॉजिस्टिक रिग्रेशन एक सांख्यिकीय पद्धति है जिसका उपयोग हम रिग्रेशन मॉडल को फिट करने के लिए करते हैं जब प्रतिक्रिया चर द्विआधारी होता है।
यह मूल्यांकन करने के लिए कि लॉजिस्टिक रिग्रेशन मॉडल डेटा सेट में कितनी अच्छी तरह फिट बैठता है, हम निम्नलिखित दो मैट्रिक्स देख सकते हैं:
- संवेदनशीलता: संभावना है कि मॉडल किसी अवलोकन के लिए सकारात्मक परिणाम की भविष्यवाणी करता है जब परिणाम वास्तव में सकारात्मक होता है। इसे “सच्ची सकारात्मक दर” भी कहा जाता है।
- विशिष्टता: संभावना है कि मॉडल किसी अवलोकन के लिए नकारात्मक परिणाम की भविष्यवाणी करता है जब परिणाम वास्तव में नकारात्मक होता है। इसे “सच्ची नकारात्मक दर” भी कहा जाता है।
इन दो मापों को देखने का एक तरीका एक आरओसी वक्र बनाना है, जो “रिसीवर ऑपरेटिंग विशेषता” वक्र के लिए है।
यह एक ग्राफ है जो y-अक्ष के साथ संवेदनशीलता और x-अक्ष के साथ (1 – विशिष्टता) प्रदर्शित करता है।
डेटा को वर्गीकृत करने में लॉजिस्टिक रिग्रेशन मॉडल की प्रभावशीलता को मापने का एक तरीका एयूसी की गणना करना है, जिसका अर्थ है “वक्र के नीचे का क्षेत्र।”
AUC 1 के जितना करीब होगा, मॉडल उतना ही बेहतर होगा।
निम्नलिखित चरण-दर-चरण उदाहरण दिखाता है कि पायथन में लॉजिस्टिक रिग्रेशन मॉडल के लिए एयूसी की गणना कैसे करें।
चरण 1: पैकेज आयात करें
सबसे पहले, हम पायथन में लॉजिस्टिक रिग्रेशन करने के लिए आवश्यक पैकेज आयात करेंगे:
import pandas as pd import numpy as np from sklearn. model_selection import train_test_split from sklearn. linear_model import LogisticRegression from sklearn import metrics
चरण 2: लॉजिस्टिक रिग्रेशन मॉडल को फिट करें
इसके बाद, हम एक डेटासेट आयात करेंगे और उसमें एक लॉजिस्टिक रिग्रेशन मॉडल फिट करेंगे:
#import dataset from CSV file on Github
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/default.csv"
data = pd. read_csv (url)
#define the predictor variables and the response variable
X = data[[' student ',' balance ',' income ']]
y = data[' default ']
#split the dataset into training (70%) and testing (30%) sets
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size= 0.3 ,random_state= 0 )
#instantiate the model
log_regression = LogisticRegression()
#fit the model using the training data
log_regression. fit (X_train,y_train)
चरण 3: एयूसी की गणना करें
हम मॉडल के AUC की गणना करने के लिए metrics.roc_auc_score() फ़ंक्शन का उपयोग कर सकते हैं:
#use model to predict probability that given y value is 1
y_pred_proba = log_regression. predict_proba (X_test)[::, 1 ]
#calculate AUC of model
auc = metrics. roc_auc_score (y_test, y_pred_proba)
#print AUC score
print (auc)
0.5602104030579559
इस विशेष मॉडल के लिए AUC (वक्र के नीचे का क्षेत्र) 0.5602 है।
याद रखें कि 0.5 के एयूसी स्कोर वाला मॉडल यादृच्छिक अनुमान लगाने वाले मॉडल से बेहतर नहीं है।
इसलिए, ज्यादातर मामलों में, 0.5602 के एयूसी स्कोर वाले मॉडल को टिप्पणियों को सही वर्गों में वर्गीकृत करने में खराब माना जाएगा।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल आरओसी वक्र और एयूसी स्कोर के बारे में अतिरिक्त जानकारी प्रदान करते हैं:
आरओसी वक्र की व्याख्या कैसे करें (उदाहरण के साथ)
एक अच्छा AUC स्कोर क्या माना जाता है?