एसवीएम जैसे असतत क्लासीफायर के लिए आरओसी वक्र: हम अभी भी इसे "वक्र" क्यों कहते हैं ?, क्या यह सिर्फ एक "बिंदु" नहीं है?


25

चर्चा में: बाइनरी वर्गीकरण के लिए आरसी वक्र कैसे उत्पन्न किया जाए , मुझे लगता है कि भ्रम यह था कि "बाइनरी क्लासिफायरियर" (जो किसी भी क्लासिफायरियर को 2 वर्गों को अलग करता है) यांग के लिए था जिसे "असतत क्लासिफायरफायर" कहा जाता है (जो उत्पादन करता है असतत आउटपुट एक SVM की तरह 0/1) और ANN या बेयस क्लासिफायर जैसे निरंतर आउटपुट नहीं ... आदि। इसलिए, इस बारे में चर्चा थी कि ROC को "बाइनरी निरंतर क्लासिफायरियर" के लिए कैसे प्लॉट किया जाता है, और उत्तर यह है कि आउटपुट सॉर्ट किए जाते हैं उनके स्कोर के बाद से आउटपुट निरंतर हैं, और आरओसी वक्र पर प्रत्येक बिंदु का उत्पादन करने के लिए एक दहलीज का उपयोग किया जाता है।

मेरा प्रश्न "बाइनरी असतत क्लासीफायर" के लिए है, जैसे एसवीएम, आउटपुट मान 0 या 1. हैं, इसलिए आरओसी केवल एक बिंदु का उत्पादन करता है, न कि वक्र का। मैं उलझन में हूँ कि हम इसे अभी भी वक्र क्यों कहते हैं !! क्या हम अभी भी थ्रेसहोल्ड के बारे में बात कर सकते हैं? विशेष रूप से SVM ​​में थ्रेसहोल्ड का उपयोग कैसे किया जा सकता है? AUC की गणना कैसे की जा सकती है ?, क्या यहाँ पर क्रॉस-वैलिडेशन की कोई भूमिका है?


10
एक SVM फीचर स्पेस में हाइपरप्लेन को अलग करने के लिए हस्ताक्षरित दूरी अर्थात् एक वास्तविक निर्णय मूल्य को आउटपुट करता है। वर्गीकरण में लेबल को इस निर्णय मूल्य के संकेत के आधार पर सौंपा गया है। जैसे, एसवीएम केवल एक द्विआधारी मूल्य से अधिक उत्पादन करते हैं , उनके उत्पादन को वर्गीकरण में पोस्ट-प्रोसेसिंग कदम के रूप में सिर्फ बायनेरिज़ किया जाता है।
मार्क क्लेसेन

जवाबों:


15
  • हां, ऐसी परिस्थितियां हैं जहां सामान्य रिसीवर ऑपरेटिंग वक्र प्राप्त नहीं किया जा सकता है और केवल एक बिंदु मौजूद है।

  • एसवीएम स्थापित किए जा सकते हैं ताकि वे वर्ग सदस्यता संभावनाओं का उत्पादन करें। ये एक सामान्य मूल्य होगा जिसके लिए एक रिसीवर ऑपरेटिंग वक्र का उत्पादन करने के लिए एक सीमा होगी ।
    क्या यह वही है जिसको आप ढूंढ रहें थे।

  • आरओसी में कदम आमतौर पर कोवरिएट में असतत भिन्नता के साथ कुछ भी करने के बजाय परीक्षण मामलों की छोटी संख्या के साथ होता है (विशेष रूप से, आप एक ही बिंदु के साथ समाप्त होते हैं यदि आप अपने असतत थ्रेसहोल्ड को चुनते हैं ताकि प्रत्येक नए बिंदु के लिए केवल एक नमूना परिवर्तन हो इसका काम)।

  • निश्चित रूप से मॉडल के अन्य (हाइपर) मापदंडों को अलग-अलग करने से एफपीआर में अन्य घटता देने वाले विशिष्टता / संवेदनशीलता जोड़े के सेट का उत्पादन होता है; टीपीआर समन्वय प्रणाली।
    निश्चित रूप से एक वक्र की व्याख्या इस बात पर निर्भर करती है कि वक्र में क्या बदलाव आया।

आईरिस डेटा सेट के "वर्सिकलर" वर्ग के लिए एक सामान्य आरओसी (यानी आउटपुट के रूप में संभावनाओं का अनुरोध करना):

  • FPR; TPR (γ = 1, C = 1, प्रायिकता सीमा):
    आरओसी

एक ही प्रकार की समन्वय प्रणाली, लेकिन ट्यूनिंग मापदंडों के कार्य के रूप में TPR और FPR: inate और C:

  • FPR; TPR (γ, C = 1, प्रायिकता सीमा = 0.5):
    गामा

  • FPR; TPR (γ = 1, C, प्रायिकता सीमा = 0.5):
    लागत

इन प्लॉटों का एक अर्थ होता है, लेकिन यह अर्थ सामान्य आरओसी से अलग होता है!

यहाँ R कोड मैंने उपयोग किया है:

svmperf <- function (cost = 1, gamma = 1) {
    model <- svm (Species ~ ., data = iris, probability=TRUE, 
                  cost = cost, gamma = gamma)
    pred <- predict (model, iris, probability=TRUE, decision.values=TRUE)
    prob.versicolor <- attr (pred, "probabilities")[, "versicolor"]

    roc.pred <- prediction (prob.versicolor, iris$Species == "versicolor")
    perf <- performance (roc.pred, "tpr", "fpr")

    data.frame (fpr = perf@x.values [[1]], tpr = perf@y.values [[1]], 
                threshold = perf@alpha.values [[1]], 
                cost = cost, gamma = gamma)
}

df <- data.frame ()
for (cost in -10:10)
  df <- rbind (df, svmperf (cost = 2^cost))
head (df)
plot (df$fpr, df$tpr)

cost.df <- split (df, df$cost)

cost.df <- sapply (cost.df, function (x) {
    i <- approx (x$threshold, seq (nrow (x)), 0.5, method="constant")$y 
    x [i,]
})

cost.df <- as.data.frame (t (cost.df))
plot (cost.df$fpr, cost.df$tpr, type = "l", xlim = 0:1, ylim = 0:1)
points (cost.df$fpr, cost.df$tpr, pch = 20, 
        col = rev(rainbow(nrow (cost.df),start=0, end=4/6)))

df <- data.frame ()
for (gamma in -10:10)
  df <- rbind (df, svmperf (gamma = 2^gamma))
head (df)
plot (df$fpr, df$tpr)

gamma.df <- split (df, df$gamma)

gamma.df <- sapply (gamma.df, function (x) {
     i <- approx (x$threshold, seq (nrow (x)), 0.5, method="constant")$y
     x [i,]
})

gamma.df <- as.data.frame (t (gamma.df))
plot (gamma.df$fpr, gamma.df$tpr, type = "l", xlim = 0:1, ylim = 0:1, lty = 2)
points (gamma.df$fpr, gamma.df$tpr, pch = 20, 
        col = rev(rainbow(nrow (gamma.df),start=0, end=4/6)))

roc.df <- subset (df, cost == 1 & gamma == 1)
plot (roc.df$fpr, roc.df$tpr, type = "l", xlim = 0:1, ylim = 0:1)
points (roc.df$fpr, roc.df$tpr, pch = 20, 
        col = rev(rainbow(nrow (roc.df),start=0, end=4/6)))

1
यह बहुत स्पष्ट है, धन्यवाद। मेरा यह विचार था कि बदलती बी हाइपरप्लेन को हिलाने और इस तरह अलग (TPR, FPR) होने की तरह है! लेकिन एसवीएम क्लासिफायर के साथ, पूर्वाग्रह बी सीखा जाता है, इसलिए यह सबसे अच्छा पैरामीटर लगता है? नहीं ?, अगर ऐसा है, तो ROC विश्लेषण करने की कोई आवश्यकता नहीं है ?, नहीं
अब्देलहाक महमौदी

@AddelhakMahmoudi: मुझे लगता है कि मॉडल द्वारा सीखे गए पैरामीटर वे नहीं हैं जो आप अलग-अलग करना चाहते हैं। लेकिन जैसा कि आप एक संभावना उत्पादन कर सकते हैं (मैं कोड में खुदाई नहीं किया था, इसलिए मुझे नहीं पता कि क्या संभावना एसवीएम "कठिन" वाले के बराबर है), इसका उपयोग क्यों नहीं करते? यह एक बहुत ही सामान्य परिणाम है जिससे आरओसी उत्पन्न होता है। R का svm फ़ंक्शन व्यापक रूप से उपयोग किए जाने वाले libsvm का एक इंटरफ़ेस है, इसलिए आप ऐसा करने के लिए R का उपयोग करने के लिए प्रतिबंधित नहीं हैं।
काबेलाइट्स

these plots do have a meaning- उन भूखंडों का क्या अर्थ है?
गुलजार

8

y^y^=संकेत(wटीएक्स+)w

y^={0अगर  wटीएक्स+<01अन्यथा

ηη

y^={0अगर  wटीएक्स+<η1अन्यथा

η

wη

>>> from sklearn.svm import SVC
>>> model = SVC(kernel='linear', C=0.001, probability=False, class_weight='balanced')
>>> model.fit(X, y)
>>> # The coefficients w are given by
>>> w = list(model.coef_)
>>> # The intercept b is given by
>>> b = model.intercept_[0]
>>> y_hat = X.apply(lambda s: np.sum(np.array(s)*np.array(w))+b, axis=1)
>>> y_hat = (y_hat > eta).astype(float)

3

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

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


1
ठीक है, क्या svm वर्गीकारक के लिए दहलीज हो सकता है?
अब्देलहाक महमौदी

मुझे नहीं पता। क्या हैं कोवरिएट्स? यदि आपके पास एक कोवरिएट है, तो कोई भी मूल्य एक सीमा हो सकती है। यदि आपके पास एक से अधिक कोवरीएट है, तो क्लासिफायर प्रदर्शन एक सीमा के बजाय कई मूल्यों की पसंद पर निर्भर करता है, लेकिन यह अभी भी कोवरिएट्स के स्थान में भिन्न होता है।
माइकल आर। चेरिक

उदाहरण के लिए, रैखिक एसवीएम अलग-अलग हाइपरप्लेन पर आधारित होते हैं जो चुने गए सी मूल्य (कम सी अधिक प्रशिक्षण त्रुटियों को सहन करता है) पर निर्भर करता है, क्या सी मूल्यों का एक सेट थ्रेसहोल्ड का सेट हो सकता है?
अब्देलहाक महमूदी

हाँ और C नहीं हैं covariates का रेखीय संयोजन?
माइकल आर। चेरिक

2
C हाइपरप्लेन जटिलता और प्रशिक्षण त्रुटियों के बीच व्यापार बंद को नियंत्रित करने के लिए पेश किया गया दंड कारक है। एक अन्य विकल्प बायस बी का उपयोग एक सीमा के रूप में किया जा सकता है क्योंकि बी फीचर फ़ीचर के केंद्र से अलग हाइपरप्लेन की दूरी है। इसलिए अलग-अलग बी हाइपरप्लेन को हिलाने जैसा है और इस तरह अलग-अलग टीपी और एफपी होता है! यह मेरी समझ है!
अब्देलहाक महमौदी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.