Ggplot2 का उपयोग करके roc वक्र कैसे प्लॉट करें (उदाहरण के साथ)
लॉजिस्टिक रिग्रेशन एक सांख्यिकीय पद्धति है जिसका उपयोग हम रिग्रेशन मॉडल को फिट करने के लिए करते हैं जब प्रतिक्रिया चर द्विआधारी होता है। यह मूल्यांकन करने के लिए कि लॉजिस्टिक रिग्रेशन मॉडल डेटा सेट में कितनी अच्छी तरह फिट बैठता है, हम निम्नलिखित दो मैट्रिक्स देख सकते हैं:
- संवेदनशीलता: संभावना है कि मॉडल किसी अवलोकन के लिए सकारात्मक परिणाम की भविष्यवाणी करता है जब परिणाम वास्तव में सकारात्मक होता है।
- विशिष्टता: संभावना है कि मॉडल किसी अवलोकन के लिए नकारात्मक परिणाम की भविष्यवाणी करता है जब परिणाम वास्तव में नकारात्मक होता है।
इन दो मेट्रिक्स की कल्पना करने का एक सरल तरीका एक आरओसी वक्र बनाना है, जो एक ग्राफ है जो लॉजिस्टिक रिग्रेशन मॉडल की संवेदनशीलता और विशिष्टता को प्रदर्शित करता है।
यह ट्यूटोरियल बताता है कि ggplot2 विज़ुअलाइज़ेशन पैकेज का उपयोग करके R में ROC वक्र कैसे बनाएं और व्याख्या करें।
उदाहरण: ggplot2 का उपयोग करके ROC वक्र
मान लीजिए कि हम निम्नलिखित लॉजिस्टिक रिग्रेशन मॉडल को आर में फिट करते हैं:
#load Default dataset from ISLR book data <- ISLR::Default #divide dataset into training and test set set.seed(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 to training set model <- glm(default~student+balance+income, family=" binomial ", data=train) #use model to make predictions on test set predicted <- predict(model, test, type=" response ")
परीक्षण सेट पर लॉजिस्टिक रिग्रेशन मॉडल के प्रदर्शन की कल्पना करने के लिए, हम pROC पैकेज से ggroc() फ़ंक्शन का उपयोग करके एक ROC प्लॉट बना सकते हैं:
#load necessary packages library (ggplot2) library (pROC) #define object to plot rocobj <- roc(test$default, predicted) #create ROC plot ggroc(rocobj)
y-अक्ष मॉडल की संवेदनशीलता (वास्तविक सकारात्मक दर) प्रदर्शित करता है और x-अक्ष मॉडल की विशिष्टता (वास्तविक नकारात्मक दर) प्रदर्शित करता है।
ध्यान दें कि हम प्लॉट में स्टाइल जोड़ सकते हैं और प्लॉट के एयूसी (वक्र के नीचे का क्षेत्र) युक्त एक शीर्षक भी प्रदान कर सकते हैं:
#load necessary packages library (ggplot2) library (pROC) #define object to plot and calculate AUC rocobj <- roc(test$default, predicted) auc <- round (auc(test$default, predicted), 4 ) #create ROC plot ggroc(rocobj, color = ' steelblue ', size = 2 ) + ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) '))
ध्यान दें कि आप कथानक की थीम को संशोधित भी कर सकते हैं:
#create ROC plot with minimal theme ggroc(rocobj, color = ' steelblue ', size = 2 ) + ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) + theme_minimal()
सर्वोत्तम ggplot2 थीम की मार्गदर्शिका के लिए इस लेख का संदर्भ लें।