क्या AUC-ROC 0-0.5 के बीच हो सकती है?


16

क्या AUC-ROC मान 0-0.5 के बीच हो सकता है? क्या मॉडल कभी 0 से 0.5 के बीच आउटपुट देता है?

जवाबों:


19

एक सही भविष्यवक्ता 1 का AUC-ROC स्कोर देता है, एक भविष्यवक्ता जो यादृच्छिक अनुमान लगाता है, उसका AUC-ROC स्कोर 0.5 है।

यदि आपको 0 का स्कोर मिला है, तो इसका मतलब है कि क्लासिफायरियर पूरी तरह से गलत है, यह 100% समय के गलत विकल्प की भविष्यवाणी कर रहा है। अगर आपने इस क्लासिफायर की भविष्यवाणी को विपरीत पसंद में बदल दिया है तो यह पूरी तरह से भविष्यवाणी कर सकता है और इसका AUC-ROC स्कोर 1 है।

इसलिए अभ्यास में यदि आपको 0 और 0.5 के बीच AUC-ROC स्कोर मिलता है, तो हो सकता है कि जिस तरह से आपने अपने क्लासिफायर टारगेट को लेबल किया हो, उसमें आपकी कोई गलती हो या आपके पास एक खराब प्रशिक्षण एल्गोरिथ्म हो। यदि आपको 0.2 का स्कोर मिलता है, तो यह पता चलता है कि डेटा में 0.8 का स्कोर प्राप्त करने के लिए पर्याप्त जानकारी है, लेकिन कुछ गलत हो गया।


मुझे लगता है कि यह जवाब इस संभावना पर छोड़ देता है कि मॉडल ओवरफिट है, उदाहरण के लिए प्रशिक्षण डेटा पर 0.8 का एयूसी प्राप्त करना लेकिन होल्डआउट डेटा पर 0.35 का एयूसी।
साइकोरैक्स

1
@ साइकोरेक्स: हम्म, मैं देख सकता हूं कि ओवरफिटिंग स्पष्ट रूप से एयूसी को ड्राइव कर सकता है जहां यह मौका स्तर पर है (यदि आप सच्चे मॉडल से इतनी दूर हैं कि आपकी भविष्यवाणियां सिर्फ कचरा हैं), लेकिन मौका से नीचे (महत्वपूर्ण) कैसे चलेगा ?
Ruben van Bergen

1
जब भी कुछ सेट पर रैंकिंग सही से पिछड़ी होने के करीब होगी, तो आपके पास 0.5 से नीचे एक एयूसी होगा । यह किसी भी अन्य संदर्भ में ओवरफिटिंग से अलग नहीं है।
साइकोरैक्स का कहना है कि

14

वे कर सकते हैं, यदि आप जिस सिस्टम का विश्लेषण कर रहे हैं वह मौका स्तर से नीचे का प्रदर्शन करता है। त्रैमासिक, आप आसानी से 0 AUC के साथ एक क्लासिफायर का निर्माण कर सकते हैं, यह हमेशा सच्चाई के विपरीत जवाब देता है।

निश्चित रूप से आप अपने क्लासिफायर को कुछ डेटा पर प्रशिक्षित करते हैं, इसलिए मान 0.5 से बहुत छोटा होता है, जो आमतौर पर आपके एल्गोरिथ्म, डेटा लेबल या ट्रेन / परीक्षण डेटा की पसंद में त्रुटि का संकेत देता है। उदाहरण के लिए, यदि आपने गलती से क्लास लेबल को अपने ट्रेन डेटा में बदल दिया है, तो आपकी उम्मीद की गई AUC "सही" AUC (सही लेबल दिए गए) 1 माइनस हो जाएगी। एयूसी <0.5 भी हो सकता है यदि आप अपने डेटा को ट्रेन और परीक्षण विभाजन में इस तरह विभाजित करते हैं कि वर्गीकृत किए जाने वाले पैटर्न अलग-अलग थे। ऐसा हो सकता है (उदाहरण के लिए) यदि ट्रेन बनाम परीक्षण सेट में एक वर्ग अधिक सामान्य था, या यदि प्रत्येक सेट में पैटर्न व्यवस्थित रूप से भिन्न होते थे, तो आप के लिए सही नहीं था।

अंत में, यह बेतरतीब ढंग से भी हो सकता है क्योंकि आपका क्लासिफायरर लंबे समय में मौका स्तर पर है, लेकिन आपके परीक्षण नमूने में "अशुभ" प्राप्त करने के लिए हुआ (अर्थात सफलताओं की तुलना में कुछ और त्रुटियां प्राप्त करें)। लेकिन उस मामले में मान अभी भी 0.5 के करीब होना चाहिए (डेटा बिंदुओं की संख्या पर निर्भर करता है)।


1

मुझे खेद है, लेकिन ये उत्तर खतरनाक रूप से गलत हैं। नहीं, आप डेटा को देखने के बाद सिर्फ AUC को फ्लिप नहीं कर सकते। कल्पना कीजिए कि आप स्टॉक खरीद रहे हैं, और आपने हमेशा गलत खरीदा है, लेकिन आपने खुद से कहा, तो यह ठीक है, क्योंकि यदि आप अपने मॉडल की भविष्यवाणी कर रहे थे, तो इसके विपरीत खरीद रहे थे, तो आप पैसे कमाएंगे।

बात यह है कि कई, अक्सर गैर-स्पष्ट कारण हैं कि आप अपने परिणामों को कैसे पूर्वाग्रह कर सकते हैं और लगातार नीचे-औसत प्रदर्शन प्राप्त कर सकते हैं। यदि आप अब अपना AUC फ्लिप करते हैं, तो आप सोच सकते हैं कि आप दुनिया के सर्वश्रेष्ठ मॉडलर हैं, हालांकि डेटा में कभी कोई संकेत नहीं था।

यहाँ एक सिमुलेशन उदाहरण है। ध्यान दें कि पूर्वसूचक लक्ष्य के लिए कोई संबंध नहीं होने के साथ सिर्फ एक यादृच्छिक चर है। इसके अलावा, ध्यान दें कि औसत एयूसी 0.3 के आसपास है।

library(MLmetrics)
aucs <- list()
for (sim in seq_len(100)){
  n <- 100
  df <- data.frame(x=rnorm(n),
               y=c(rep(0, n/2), rep(1, n/2)))

  predictions <- list()
  for(i in seq_len(n)){
    train <- df[-i,]
    test <- df[i,]

    glm_fit <- glm(y ~ x, family = 'binomial', data = train)
    predictions[[i]] <- predict(glm_fit, newdata = test, type = 'response')
  }
  predictions <- unlist(predictions)
  aucs[[sim]] <- MLmetrics::AUC(predictions, df$y)
}
aucs <- unlist(aucs)
plot(aucs); abline(h=mean(aucs), col='red')

परिणाम

यहाँ छवि विवरण दर्ज करें

बेशक, कोई तरीका नहीं है कि कोई क्लासिफायर डेटा से कुछ भी सीख सकता है क्योंकि डेटा यादृच्छिक हैं। एओओसी मौका है क्योंकि एलओओसीवी एक पक्षपाती, असंतुलित प्रशिक्षण सेट बनाता है। हालाँकि, इसका मतलब यह नहीं है कि यदि आप LOOCV का उपयोग नहीं करते हैं, तो आप सुरक्षित हैं। इस कहानी का मुद्दा यह है कि कई तरीके हैं, परिणाम कैसे प्राप्त कर सकते हैं, भले ही डेटा में कुछ भी न हो, और इसलिए आपको भविष्यवाणियों को पलटना नहीं चाहिए, जब तक कि आपको पता न हो कि आप क्या कर रहे हैं। और जब से आपको बलो औसत प्रदर्शन मिला है, आप यह नहीं देखते कि आप क्या कर रहे हैं :)

यहाँ कुछ कागजात हैं जो इस समस्या को छूते हैं, लेकिन मुझे यकीन है कि दूसरों ने भी किया

जमालाबादी एट अल 2016 https://onlinelibrary.wiley.com/doi/full/10.1002/hbm.23140

स्नोक एट अल 2019 https://www.ncbi.nlm.nih.gov/pubmed/30268846


यह स्वीकृत उत्तर होना चाहिए!
tdc
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.