अगर एक पर्यवेक्षित मशीन लर्निंग मॉडल ओवरफिटिंग है या नहीं तो कैसे जज करें?


27

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

जवाबों:


29

संक्षेप में: अपने मॉडल को मान्य करके। सत्यापन का मुख्य कारण ओवरफिट न होना और सामान्यीकृत मॉडल प्रदर्शन का अनुमान लगाना है।

Overfit

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

यह निर्धारित करने के लिए कि कोई मॉडल ओवरफिट है या नहीं, हमें सामान्यीकृत त्रुटि (या प्रदर्शन) का अनुमान लगाने की आवश्यकता है जो मॉडल के भविष्य के डेटा पर होगा और प्रशिक्षण सेट पर हमारे प्रदर्शन से इसकी तुलना करेगा। इस त्रुटि का अनुमान कई अलग-अलग तरीकों से किया जा सकता है।

दातासेट बंट गया

सामान्यीकृत प्रदर्शन का अनुमान लगाने के लिए सबसे सीधा दृष्टिकोण डेटासेट को तीन भागों में विभाजित करना है, एक प्रशिक्षण सेट, एक सत्यापन सेट और एक परीक्षण सेट। डेटा सेट करने के लिए मॉडल को प्रशिक्षित करने के लिए प्रशिक्षण सेट का उपयोग किया जाता है, सत्यापन सेट का उपयोग मॉडल के बीच के प्रदर्शन में अंतर को मापने के लिए किया जाता है ताकि सबसे अच्छा एक का चयन किया जा सके और परीक्षण सेट का दावा है कि मॉडल चयन प्रक्रिया पहले से अधिक नहीं है दो सेट।

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

यह तरीका बहुत सामान्य और सम्मानित है लेकिन यह डेटा की उपलब्धता पर एक बड़ी मांग रखता है। यदि आपका डेटासेट बहुत छोटा है, तो आप संभवतः बहुत अधिक प्रदर्शन खो देंगे और आपके परिणाम विभाजन पर पक्षपाती होंगे।

परिणाम का सत्यापन करना

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

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

जैसा कि डेटासेट विभाजन में हमें मॉडल प्रदर्शन का अनुमान मिलता है और ओवरफिट का अनुमान लगाने के लिए आप अपने सीवी से मैट्रिक्स की तुलना अपने प्रशिक्षण सेट पर मैट्रिक्स का मूल्यांकन करने से प्राप्त लोगों से करते हैं।

बूटस्ट्रैप

बूटस्ट्रैप के पीछे का विचार सीवी के समान है लेकिन हम डेटासेट को भागों में विभाजित करने के बजाय प्रशिक्षण में यादृच्छिकता का परिचय पूरे डेटासेट से प्रशिक्षण सेट को बार-बार बदलने के साथ करते हैं और इन बूटस्ट्रैप नमूनों में से प्रत्येक पर पूर्ण प्रशिक्षण चरण का प्रदर्शन करते हैं।

बूटस्ट्रैप सत्यापन का सबसे सरल रूप केवल प्रशिक्षण सेट में पाए गए नमूनों पर मैट्रिक्स का मूल्यांकन करता है (यानी जो लोग छोड़ दिए गए हैं) और सभी दोहरावों पर औसत।

यह विधि आपको मॉडल प्रदर्शन का अनुमान देगी जो ज्यादातर मामलों में सीवी से कम पक्षपाती हैं। फिर, अपने प्रशिक्षण सेट प्रदर्शन के साथ इसकी तुलना करें और आपको ओवरफिट मिलता है।

बूटस्ट्रैप सत्यापन को बेहतर बनाने के तरीके हैं। .632+ विधि सामान्यीकृत मॉडल प्रदर्शन के बेहतर, अधिक मजबूत अनुमान देने के लिए जानी जाती है, जो ओवरफिट को ध्यान में रखती है। (यदि आप मूल लेख में रुचि रखते हैं तो यह एक अच्छा पढ़ें: क्रॉस-वैलिडेशन में सुधार: 632+ बूटस्ट्रैप विधि )

हम उम्मीद करते है कि यह आपके सवाल का जवाब दे देगा। यदि आप मॉडल सत्यापन में रुचि रखते हैं, तो मैं पुस्तक में सत्यापन पर भाग को पढ़ने की सलाह देता हूं : सांख्यिकीय शिक्षा के तत्व: डेटा खनन, निष्कर्ष और भविष्यवाणी जो स्वतंत्र रूप से ऑनलाइन उपलब्ध है।


2
ध्यान दें कि परीक्षण बनाम सत्यापन की आपकी शब्दावली का सभी क्षेत्रों में पालन नहीं किया जाता है। जैसे मेरे क्षेत्र में (विश्लेषणात्मक रसायन विज्ञान) सत्यापन एक प्रक्रिया है जो यह साबित करना चाहिए कि मॉडल अच्छी तरह से काम करता है (और मापता है कि यह कितना अच्छा काम करता है)। यह अंतिम मॉडल के साथ किया जाता है , बाद में कोई और परिवर्तन की अनुमति नहीं है (या, यदि आप ऐसा करते हैं, तो आपको फिर से स्वतंत्र डेटा के साथ सत्यापन करने की आवश्यकता है)। तो मैं आपके सत्यापन को "आंतरिक परीक्षण सेट" या "अनुकूलन परीक्षण सेट" कहूंगा। "बाहरी" परीक्षण डेटा ओवरफिटिंग को रोकता नहीं है, लेकिन इसका उपयोग ओवरफिटिंग की सीमा को मापने के लिए किया जा सकता है।
cbeleites

ठीक है, मुझे आपके क्षेत्र में अनुभव नहीं है। स्पष्टीकरण के लिए धन्यवाद। यह शायद अन्य क्षेत्रों में भी ऐसा ही है। मैंने जिस पुस्तक को अंत में जोड़ा था, उसमें मैंने केवल शब्दावली का इस्तेमाल किया। मुझे उम्मीद है कि यह बहुत भ्रामक नहीं है।
जबकि

7

यहां बताया गया है कि आप ओवरफिटिंग की सीमा का अनुमान कैसे लगा सकते हैं:

  • आंतरिक त्रुटि अनुमान प्राप्त करें। या तो resubstitutio (= प्रशिक्षण डेटा की भविष्यवाणी करें), या यदि आप हाइपरपैरामीटर को अनुकूलित करने के लिए एक आंतरिक क्रॉस "सत्यापन" करते हैं, तो यह भी कि यह ब्याज का होगा।
  • एक स्वतंत्र परीक्षण सेट त्रुटि अनुमान प्राप्त करें। आमतौर पर, resampling (iterated क्रॉस सत्यापन या आउट-ऑफ-बूटस्ट्रैप * की सिफारिश की जाती है। लेकिन आपको सावधान रहने की जरूरत है कि कोई डेटा लीक न हो। यानी रेसमप्लिंग लूप को उन सभी चरणों को पुनर्गणना करना होगा , जिनकी गणना एक से अधिक मामलों में हो। प्रसंस्करण कदम, जैसे कि केंद्रीकरण, स्केलिंग, आदि। यह सुनिश्चित करें कि यदि आप "पदानुक्रमिक" (जिसे "क्लस्टर" के रूप में भी जाना जाता है) डेटा संरचना जैसे कि एक ही रोगी के बार-बार माप (=> पुन: उपयोग) को सुनिश्चित करते हुए उच्चतम स्तर पर विभाजित करते हैं। )।
  • फिर तुलना करें कि "आंतरिक" त्रुटि अनुमान कितना बेहतर है, स्वतंत्र की तुलना में।

यहाँ एक उदाहरण है:
overfitting
ट्रेफेरेट = हिट दर (% सही वर्गीकृत), वैरिब्लेंज़ल = चर की संख्या (= मॉडल जटिलता)
प्रतीक:। पुनर्जीवन, + आंतरिक हाइपरपैरिमेट ऑप्टिमाइज़र का एकतरफा अनुमान, ओ बाहरी क्रॉस सत्यापन रोगी स्तर पर स्वतंत्र

यह BOC के स्कोर, संवेदनशीलता, विशिष्टता, जैसे ROC या प्रदर्शन के उपायों के साथ काम करता है ...

* मैं यहां .632 या .632+ बूटस्ट्रैप की सिफारिश नहीं करता हूं: वे पहले से ही रिजुबस्ट्रेशन त्रुटि में मिलाते हैं: आप वैसे भी अपने रेज़ुबस्ट्रेशन और आउट-ऑफ-बूटस्टैप अनुमानों से बाद में उनकी गणना कर सकते हैं।


0

ओवरफिटिंग केवल सांख्यिकीय मापदंडों पर विचार करने का प्रत्यक्ष परिणाम है, और इसलिए प्राप्त किए गए परिणामों की जाँच के बिना एक उपयोगी जानकारी के रूप में है कि उन्हें यादृच्छिक तरीके से प्राप्त नहीं किया गया था। इसलिए, ओवरफिटिंग की उपस्थिति का अनुमान लगाने के लिए हमें एक डेटाबेस पर एल्गोरिदम का उपयोग वास्तविक के बराबर करना होगा, लेकिन यादृच्छिक रूप से उत्पन्न मूल्यों के साथ, इस ऑपरेशन को दोहराते हुए कई बार हम यादृच्छिक तरीके से बराबर या बेहतर परिणाम प्राप्त करने की संभावना का अनुमान लगा सकते हैं। । यदि यह संभावना अधिक है, तो हम एक ओवरफिटिंग स्थिति में सबसे अधिक संभावना है। उदाहरण के लिए, संभावना है कि एक चौथाई डिग्री बहुपद में 1 का संबंध है, एक हवाई जहाज़ पर 5 यादृच्छिक बिंदुओं के साथ 100% है, इसलिए यह सहसंबंध बेकार है और हम एक ओवरफिटिंग स्थिति में हैं।

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