प्लॉट की स्केलिंग का उपयोग क्यों करें?


17

पर्यवेक्षित अधिगम में संभाव्यता के लिए एक विश्वास स्तर को जांचने के लिए (एक एसवीएम या ओवरसम्प्ट डेटा का उपयोग करके एक निर्णय पेड़ से विश्वास को मैप करने के लिए) एक विधि प्लॉट की स्केलिंग (जैसे, बूस्टिंग के लिए कैलिब्रेटेड संभावनाओं को प्राप्त करना ) का उपयोग करना है।

मूल रूप से एक नक्शे के लिए लॉजिस्टिक प्रतिगमन का उपयोग करता है के लिए [ 0 ; ] । आश्रित चर ही सच्चा लेबल है और भविष्यवक्ता बिना पढ़े मॉडल से विश्वास है। जो मुझे समझ में नहीं आता है वह 1 या 0. के अलावा किसी अन्य लक्ष्य चर का उपयोग है। विधि एक नए "लेबल" के निर्माण के लिए कहता है:[;][0;1]

सिग्मॉइड ट्रेन सेट पर ओवरफिटिंग से बचने के लिए, एक आउट-ऑफ-सैंपल मॉडल का उपयोग किया जाता है। देखते हैं तो सकारात्मक उदाहरण और एन - ट्रेन सेट में नकारात्मक उदाहरण के लिए, प्रत्येक प्रशिक्षण उदाहरण के लिए प्लैट अंशांकन लक्ष्य मूल्यों का उपयोग करता y + और y - (बजाय 1 और 0 क्रमशः), जहां y + = एन + + 1N+Ny+y

y+=N++1N++2;y=1N+2

मुझे समझ में नहीं आता कि यह नया लक्ष्य कैसे उपयोगी है। क्या लॉजिस्टिक रिग्रेशन केवल डिपेंडेंट वैरिएबल को एक बाइनरी लेबल (चाहे जो भी लेबल दिया गया हो) के इलाज के लिए जा रहा है?

अपडेट करें:

मैंने पाया एसएएस में से निर्भर बदल रहा है कि कुछ और ही मॉडल (का उपयोग कर में वापस लौट करने के लिए )। शायद मेरी त्रुटि या शायद एसएएस की बहुमुखी प्रतिभा की कमी है। मैं एक उदाहरण के रूप में आर में मॉडल को बदलने में सक्षम था:1/0PROC GENMOD

data(ToothGrowth) 
attach(ToothGrowth) 

  # 1/0 coding 
dep          <- ifelse(supp == "VC", 1, 0) 
OneZeroModel <- glm(dep~len, family=binomial) 
OneZeroModel 
predict(OneZeroModel) 

  # Platt coding 
dep2           <- ifelse(supp == "VC", 31/32, 1/32) 
plattCodeModel <- glm(dep2~len, family=binomial) 
plattCodeModel 
predict(plattCodeModel) 

compare        <- cbind(predict(OneZeroModel), predict(plattCodeModel)) 

plot(predict(OneZeroModel), predict(plattCodeModel))

जवाबों:


13

मेरा सुझाव है कि लॉजिस्टिक रिग्रेशन का विकिपीडिया पृष्ठ देखें । यह बताता है कि एक द्विआधारी निर्भर चर लॉजिस्टिक रिग्रेशन के मामले में, आश्रितों को आश्रित चर की घटना की संभावना के लिए मैप करता है। किसी भी परिवर्तन के बिना, मॉडल को प्रशिक्षित करने के लिए उपयोग की जाने वाली संभावना या तो 1 है (यदि प्रशिक्षण सेट में y सकारात्मक है) या 0 (यदि y नकारात्मक है)।

pi=1(1+exp(Afi+B))fiy+y


जवाब के लिए धन्यवाद! मैं पहली बार एसएएस का उपयोग कर रहा था और एक अलग प्रतिक्रिया चर नहीं पा रहा था। मैं एक उदाहरण के रूप में आर में निम्नलिखित को फिट करता हूं और देखता हूं कि एक पूर्णांक रिपॉजिट वेरिएबल नहीं होने के बारे में चेतावनी जारी की गई है लेकिन परिणाम एक अलग मॉडल फिट नहीं हुआ।
B_Miner 20

data (ToothGrowth) देते हैं (ToothGrowth) # 1/0 कोडिंग dep <-ifelse (supp == "VC", 1,0) OneZeroModel <-glm (dep ~ लेन, परिवार / द्विपद) OneZeroModel भविष्यवाणी (OneZeroModel) #Platt कोडिंग dep2 <-ifelse (supp == "VC", 31/32, 1/32) plattCodeModel <-glm (dep2 ~ len, family = binomial) plattCodeModel भविष्यवाणी (plattCodeModel) की तुलना करें <-bbind (भविष्यवाणी (OneZeroModel), भविष्यवाणी) plattCodeModel)) प्लॉट (भविष्यवाणी (OneZeroModel), प्रेडिक्ट (plattCodeModel))
B_Miner

@ user2040: 1. हाँ ... एक सवाल है या यह सिर्फ एक टिप्पणी है :)? 2. आप प्रश्न में कोड क्यों नहीं जोड़ते? कोई स्वरूपण भयानक नहीं है।
स्टेफेन

2

ओवर-फिटिंग से बचने का एक और तरीका जो मुझे उपयोगी लगा है वह है एसवीएम के लीव-आउट-क्रॉस क्रॉस-वैलिडेशन आउटपुट के लिए यूनीवेटरी लॉजिस्टिक रिग्रेशन मॉडल को फिट करना, जिसे स्पैन बाउंड का उपयोग करके कुशलता से अंदाजा लगाया जा सकता है ।

हालाँकि, यदि आप एक ऐसा क्लासिफायर चाहते हैं, जो क्लास मेंबरशिप की संभावना का अनुमान पैदा करता है, तो आप कर्नेल लॉजिस्टिक रिग्रेशन का उपयोग करके बेहतर होंगे, जिसका उद्देश्य सीधे तौर पर ऐसा करना है। SVM का ouput असतत वर्गीकरण के लिए डिज़ाइन किया गया है और इसमें p = 0.5 समोच्च से दूर संभावनाओं के सटीक अनुमान के लिए आवश्यक जानकारी शामिल नहीं है।

यदि आप कर्नेल आधारित संभाव्य वर्गीकरणकर्ता चाहते हैं तो गॉसियन प्रक्रिया क्लासिफायर एक और अच्छा विकल्प है।

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