क्या एक ओवरफेड मॉडल जरूरी बेकार है?


25

मान लें कि एक मॉडल के प्रशिक्षण डेटा पर 100% सटीकता है, लेकिन परीक्षण डेटा पर 70% सटीकता है। इस मॉडल के बारे में निम्नलिखित तर्क सही है?

यह स्पष्ट है कि यह एक ओवरफेड मॉडल है। ओवरफिटिंग को कम करके परीक्षण की सटीकता को बढ़ाया जा सकता है। लेकिन, यह मॉडल अभी भी एक उपयोगी मॉडल हो सकता है, क्योंकि इसमें परीक्षण डेटा के लिए स्वीकार्य सटीकता है।


17
यदि विशेष अनुप्रयोगों में 70% स्वीकार्य है, तो मैं आपसे सहमत हूं।
रिचर्ड हार्डी

6
मैं पूरी तरह से @RichardHardy से सहमत हूँ। उदाहरण के लिए, एक यादृच्छिक वन: अक्सर, निर्माण के द्वारा, इंसुलेशन प्रदर्शन (आउट-ऑफ-बैग प्रदर्शन नहीं) 100% के करीब है, इसलिए सकल ओवरफिटिंग। लेकिन फिर भी, निचले प्रदर्शन ने आउट-ऑफ-बैग या परीक्षण / सत्यापन सेट पर मूल्यांकन किया, जो इसे एक उपयोगी मॉडल बनाने के लिए पर्याप्त उच्च हो सकता है।
माइकल एम

1
@Metariat क्यों नहीं? यह सटीकता परीक्षण सेट पर प्राप्त की जाती है जो प्रशिक्षण चरण में उपयोग नहीं की जाती है।
होसैन

3
@Metariat, इस तरह के तर्क से अधिकांश सांख्यिकीय अभ्यास नीचे ले जा सकते हैं, जैसे सामान्य रैखिक मॉडल में OLS अनुमानक, एक परिकल्पित मूल्य के लिए नमूना के समानता के लिए -est और क्या नहीं। मजे की बात यह है कि यह तर्क प्रशिक्षण के नमूने पर निर्भर मॉडल पर निर्भर नहीं करता है। यह अंडरफिट मॉडल और सामान्य रूप से किसी भी मॉडल के लिए धारण करता है। क्या यह सही नहीं है? t
रिचर्ड हार्डी

4
मैं उस मॉडल को ओवरफिट नहीं कहूंगा। एक overfitted मॉडल परीक्षण प्रदर्शन के सत्यापन सत्यापन की तुलना में स्थापित किया गया है। फिर भी, केवल अगर परीक्षण प्रदर्शन स्वीकार्य से काफी कम था, संभवतः विनाशकारी रूप से। प्रशिक्षण प्रदर्शन का मतलब कुछ भी नहीं है।
Firebug

जवाबों:


32

मुझे लगता है कि तर्क सही है। यदि विशेष एप्लिकेशन में 70% स्वीकार्य है, तो यह मॉडल ओवरफीड होने के बावजूद उपयोगी है (अधिक सामान्यतः, भले ही यह ओवरफीड हो या नहीं)।

Underfitting चिंताओं के खिलाफ overfitting संतुलन जबकि optimality (सर्वोत्कृष्ट समाधान की तलाश में), संतोषजनक प्रदर्शन होने के बारे में है प्रचुरता (मॉडल कार्य के लिए काफी अच्छी तरह से प्रदर्शन कर रहे हैं?)। एक मॉडल इष्टतम होने के बिना पर्याप्त रूप से अच्छा हो सकता है।

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


आपने एक उदाहरण के लिए कहा: परितारिका पर आईरिस डेटासेट पर एक न्यूरल नेट के लिए कोड ले लो। आँकड़े backchange.com/a/273930/2958 और फिर set.seed(100)यहाँ और set.seed(15)इसके विपरीत वर्णित घटना की तरह चित्रण के लिए प्रयास करें । शायद बेहतर कहने के लिए "का सूचक संभव overfitting"
हेनरी

क्या किसी मॉडल के लिए ट्रेन और परीक्षण दोनों पर 100% सटीकता प्राप्त करना संभव है और इसकी कोई पुष्टि नहीं हुई है?
रीका

1
@ हवा, मुझे लगता है कि आप इसे एक अलग धागे पर पूछ सकते हैं (और अगर जरूरत हो तो संदर्भ के लिए इस लिंक से)।
रिचर्ड हार्डी

मैंने अभी यहाँ लिंक दिया है
रिका

25

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

तो, मैं कहूंगा, ओवरफीड मॉडल कुछ मामलों के लिए उपयोगी हो सकता है।


5
यह उत्तर काफी दिलचस्प है क्योंकि यह उपयोग का मामला प्रस्तुत करता है। मुझे लगता है कि "हार्ड-कोडेड टू रिमेंबर" @ hxd1011 का मतलब है कि मॉडल ने यह सुनिश्चित किया है कि रिपोर्ट किए गए धोखाधड़ी के मामलों में से प्रत्येक "धोखाधड़ी ध्वज" का नेतृत्व करता है और यह कि वे एक, उह, कहना, सज्जित कार्य द्वारा सुचारू या प्रक्षेपित नहीं हुए थे । ऐसा कुछ, सही?
IcannotFix यह

@IcannotFixThis हाँ। वास्तव में, हमने झूठे सकारात्मक को नियंत्रित करने के कई अन्य तरीके आजमाए। लेकिन धोखाधड़ी के मामलों को ओवरफिट करने की कोशिश में, पागल तरीके से काम किया।
हायतौ डू

3
ββ

3
यह कष्टप्रद हो सकता है, लेकिन यह आपके वित्तपोषित बर्बाद होने की तुलना में हजारों गुना कम कष्टप्रद है क्योंकि किसी नापाक को आपके कार्ड की जानकारी मिल गई है।
मैथ्यू

12

शायद: खबरदार। जब आप कहते हैं कि 70% सटीकता (हालांकि आप इसे मापते हैं) आपके लिए काफी अच्छा है, तो ऐसा लगता है कि आप मान रहे हैं कि त्रुटियां बेतरतीब ढंग से या समान रूप से वितरित हैं।

लेकिन ओवरफिटिंग को देखने के तरीकों में से एक यह है कि ऐसा तब होता है जब एक मॉडल तकनीक (और इसकी प्रशिक्षण प्रक्रिया को प्रोत्साहित करती है) प्रशिक्षण सेट में quirks पर बहुत अधिक ध्यान दे रही है। सामान्य जनसंख्या जो इन quirks को साझा करते हैं उनमें अत्यधिक असंतुलित परिणाम हो सकते हैं।

तो शायद आप एक मॉडल के साथ समाप्त होते हैं जो कहता है कि सभी लाल कुत्तों को कैंसर है - क्योंकि आपके प्रशिक्षण डेटा में यह विशेष रूप से है। या कि 24 से 26 वर्ष के बीच के विवाहित लोग धोखाधड़ी बीमा दावों को दर्ज करने की गारंटी देते हैं। आपकी 70% सटीकता 100% गलत होने के लिए विषयों की जेब के लिए बहुत जगह छोड़ती है क्योंकि आपका मॉडल ओवरफिट है।

(ओवरफिट नहीं होना इस बात की गारंटी नहीं है कि आपके पास गलत भविष्यवाणियों की जेब नहीं होगी। वास्तव में एक अंडर-फिट मॉडल में खराब भविष्यवाणियों की कसम होगी, लेकिन ओवरफिटिंग से आपको पता चलता है कि आप अपने प्रशिक्षण डेटा में quirks के प्रभाव को बढ़ा रहे हैं। ।)


धन्यवाद। क्या आपका मतलब यह है कि यह संभव है कि यह 70% सटीकता परीक्षण डेटा में उपलब्ध आंकड़ों पर भी हो? क्या हम परीक्षण डेटा की सटीकता के आधार पर निर्णय नहीं कर सकते हैं? मुझे लगता है कि परीक्षण के आंकड़ों में उपलब्ध प्रशिक्षण डेटा में quirks प्रशिक्षण के दौरान सीखा जाना चाहिए।
होसैन

1
अगर मैं आपको समझता हूं, तो यह विपरीत होगा: quirks को ओवरफिट करने से आपको प्रशिक्षण में अपनी उच्च सटीकता प्राप्त हुई है। परीक्षण में कम सटीकता प्राप्त करने का कारण यह है कि वे प्रश्न आपके समग्र डेटासेट पर लागू नहीं होते हैं। लेकिन निश्चित रूप से आपके प्रशिक्षण और परीक्षण सेट - भले ही आप क्रॉस-मान्यता करते हैं, जो आपकी आबादी के संबंध में मददगार हो सकता है। जिस स्थिति में आपका परीक्षण / सत्यापन परिणाम अच्छी तरह से भविष्यवाणी नहीं करेगा कि आप वास्तव में कैसा प्रदर्शन करते हैं।
वेन

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

सच है, यह ओवरफिटेड मॉडलों के लिए अद्वितीय नहीं है, लेकिन यह एक ओवरफिट मॉडल में प्रवर्धित है। मैं कहना चाहता हूँ परिभाषा द्वारा मॉडल overfit है, क्योंकि यह स्पष्ट रूप से quirks overemphasizing से ग्रस्त है।
वेन

7

नहीं, वे उपयोगी नहीं हो सकते हैं, लेकिन यह आपके उद्देश्य पर निर्भर करता है। कई बातें बसंत मन:

  1. Fββ1

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

  3. इसी तरह, रीयल-टाइम एंटी-स्पैम, एंटी-फ्रॉड या क्रेडिट-स्कोरिंग के लिए, क्लासिफायर के पदानुक्रम का उपयोग करना ठीक और वांछनीय है। स्तर -1 क्लासिफायर का वास्तव में तेजी से (एमएस) मूल्यांकन करना चाहिए और उच्च एफपीआर होना ठीक है ; वे जो भी गलतियाँ करते हैं, वे अधिक सटीक, पूरी तरह से चित्रित, धीमी उच्च-स्तरीय क्लासिफायर या अंततः मानव समीक्षकों द्वारा पकड़ी जाएंगी। स्पष्ट उदाहरण: ट्विटर अकाउंट टेकओवर से नकली-समाचारों की सुर्खियों को रोकना जैसे 2013 के "व्हाइट हाउस बम हमले तीन को मारता है" पोस्टिंग के भीतर अरबों डॉलर के व्यापार को प्रभावित करने से। यह लेवल -1 क्लासिफायर फ़ॉर फ्लैग के लिए ठीक है जो स्पैम के लिए सकारात्मक है; आइए इसे थोड़ा समय लेते हैं (स्वतः) सनसनीखेज-लेकिन-असत्यापित समाचार रिपोर्टों की सच्चाई / झूठ का निर्धारण करते हैं।


2

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

यह सुनिश्चित करने के लिए कि हम @RichardHardy की टिप्पणी के बाद शब्दावली पर एक ही पृष्ठ पर हैं, आइए हम परीक्षण त्रुटि को परिभाषित करते हैं कि अंधा परीक्षण सेट पर मॉडल को लागू करते समय प्राप्त त्रुटि। और पूरी आबादी के लिए मॉडल को लागू करते समय आउट-ऑफ-सैंपल त्रुटि त्रुटि है।

आउट-ऑफ-सैंपल त्रुटि का अनुमान दो चीजों पर निर्भर करता है: मॉडल स्वयं और डेटा।

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

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


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

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

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

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

4
@Metariat, आप सही हैं कि परीक्षण त्रुटि एक अनुमान है और यह एक परीक्षण सेट से दूसरे में भिन्न हो सकती है। हालांकि, जैसा कि मैंने पहले उल्लेख किया है, यह उम्मीद करने का कोई कारण नहीं है कि परीक्षण त्रुटि सही त्रुटि को कम करती है (यह औसतन ऐसा नहीं है)। इसलिए एक बड़े-से-पर्याप्त परीक्षण का नमूना लेते हुए, हम परीक्षण त्रुटि को एक वांछित सीमा पर एक वांछित स्तर के साथ बाध्य कर सकते हैं। अब अधिक व्यावहारिक रूप से, शायद आपको यह सुनिश्चित करने के लिए कि आपके पास आउट-ऑफ-सैंपल त्रुटि के साथ परीक्षण त्रुटि के विपरीत कोई गलतफहमी नहीं है, यह सुनिश्चित करने के लिए अपने उत्तर को संपादित करके परीक्षण त्रुटि को परिभाषित करना चाहिए।
रिचर्ड हार्डी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.