मुख्य सामग्री पर जाएं

ओवरफिटिंग बनाम अंडरफिटिंग: मॉडल डायग्नोस्टिक्स की एक व्यावहारिक मार्गदर्शिका

मशीन लर्निंग में ओवरफिटिंग और अंडरफिटिंग की विस्तृत व्याख्या—हर फेल्योर मोड की पहचान कैसे करें, यह क्यों होता है, और बायस-वेरीएंस ट्रेड-ऑफ के जरिए इसे कैसे ठीक करें।
अद्यतन 12 जून 2026  · 12 मि॰ पढ़ना

क्या आप जानते हैं कि आपका मॉडल ट्रेनिंग डेटा पर 99% सटीकता कैसे हासिल कर लेता है, लेकिन प्रोडक्शन में एक सही भविष्यवाणी भी क्यों नहीं कर पाता?

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

वे दो दिशाएँ हैं ओवरफिटिंग और अंडरफिटिंग। इसे ठीक करने से पहले आपको समझना होगा कि आप किससे जूझ रहे हैं।

इस लेख में, मैं आपको बताऊँगा कि ओवरफिटिंग और अंडरफिटिंग को कैसे पहचानें, ये क्यों होती हैं, और संतुलन हासिल करने के लिए कौन से व्यावहारिक कदम मदद करेंगे।

अंडरफिटिंग क्या है?

अंडरफिटिंग तब होती है जब आपका मॉडल डेटा में चल रही वास्तविक गतिविधि को दर्शाने के लिए बहुत साधारण होता है।

मान लीजिए आप सिर्फ एक नियम से घर की कीमतें भविष्यवाणी करना चाहते हैं: "हर घर की कीमत $300,000 है।" यह नियम लगभग हर जगह गलत होगा। यह न तो मोहल्ला देख सकता है, न क्षेत्रफल, न बेडरूम की संख्या, न गैराज स्पेस, न निर्माण वर्ष। पैटर्न पकड़ने के लिए मॉडल के पास पर्याप्त लचीलापन नहीं है।

आप हर बार अंडरफिटिंग इसी तरह पहचान सकते हैं। ट्रेनिंग सटीकता कम होती है, और टेस्ट सटीकता भी कम। दोनों संख्याएँ खराब होती हैं, और अहम बात यह है कि वे साथ-साथ खराब होती हैं।

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

अंडरफिटिंग उदाहरण

अंडरफिटिंग उदाहरण

ओवरफिटिंग क्या है?

ओवरफिटिंग इसका उलटा मसला है। मॉडल बहुत जटिल होता है।

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

ओवरफिटिंग की अच्छी बात यह है कि इसे पहचानना आसान है। ट्रेनिंग सटीकता शानदार दिखती है, लेकिन टेस्ट सटीकता बहुत खराब।

उस छात्र के बारे में सोचें जो परीक्षा के उत्तर शब्दशः याद कर लेता है लेकिन विषय-वस्तु नहीं सीखता। वह प्रैक्टिस टेस्ट में अच्छा स्कोर करता है और असली परीक्षा में शायद फेल हो जाता है।

ओवरफिटिंग उदाहरण

ओवरफिटिंग उदाहरण

ओवरफिटिंग बनाम अंडरफिटिंग: प्रमुख अंतर

अब जब आपने दोनों देख लिए, फर्क समझना आसान है। अंडरफिटिंग मॉडल उस डेटा पर भी अच्छा नहीं करते जिसे उन्होंने देखा है। ओवरफिटिंग मॉडल उस डेटा पर अच्छा नहीं करते जिसे उन्होंने नहीं देखा।

ट्रेनिंग के दौरान ये अलग दिखते हैं:

  • अंडरफिटिंग सपाट, औसत-से भी खराब प्रदर्शन के रूप में दिखती है — मॉडल किसी भी चीज़ से ज़्यादा नहीं सीखता
  • ओवरफिटिंग एक गैप के रूप में दिखती है, जहाँ ट्रेनिंग स्कोर बढ़ते रहते हैं जबकि टेस्ट स्कोर ठहर जाते हैं या समय के साथ बदतर हो जाते हैं

इनके कारण भी एक-दूसरे का प्रतिबिंब हैं। अंडरफिटिंग कम करने से आती है: साधारण मॉडल और गुम फीचर्स। ओवरफिटिंग ज़्यादा करने से आती है: जटिल मॉडल और बहुत सारे फीचर्स।

यहाँ दोनों का एक रिकैप है:

अंडरफिटिंग बनाम ओवरफिटिंग

अंडरफिटिंग बनाम ओवरफिटिंग

ओवरफिटिंग और अंडरफिटिंग की पहचान कैसे करें

थ्योरी में अंडरफिटिंग और ओवरफिटिंग कैसी दिखती हैं, यह जानना एक बात है, पर अपनी मॉडलों में इन्हें पकड़ना दूसरी।

यहाँ सबसे आसान तरीका है ट्रेनिंग एरर की तुलना टेस्ट एरर से करना, और लर्निंग कर्व्स देखना।

ट्रेनिंग बनाम टेस्ट एरर

सबसे तेज़ जाँच यह है कि अपने डेटा को ट्रेनिंग और टेस्ट सेट में बाँटें, मॉडल को ट्रेन करें, और दोनों पर एरर देखें।

अंडरफिटिंग में, दोनों एरर ऊँचे होंगे। मॉडल ने ट्रेनिंग डेटा को भी ठीक से नहीं सीखा, और अनदेखे डेटा पर तो और अच्छा नहीं करेगा। दोनों तरफ नतीजा खराब रहता है।

ओवरफिटिंग में, ट्रेनिंग एरर बहुत कम होगा जबकि टेस्ट एरर ऊँचा बना रहेगा। मॉडल ने ट्रेनिंग डेटा याद कर लिया है, लेकिन वह ज्ञान ट्रांसफर नहीं होता।

ट्रेनिंग बनाम टेस्ट एरर का चित्रण

ट्रेनिंग बनाम टेस्ट एरर का चित्रण

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

लर्निंग कर्व्स

लर्निंग कर्व्स ट्रेनिंग और वैलिडेशन एरर को ट्रेनिंग सेट के आकार या ट्रेनिंग इटरेशन के मुकाबले प्लॉट करते हैं। ये दिखाते हैं कि मॉडल सीखते समय क्या हो रहा है।

अंडरफिट मॉडल में, दोनों कर्व जल्दी ही ऊँचे एरर पर सपाट हो जाते हैं। अधिक डेटा जोड़ने से मदद नहीं मिलती क्योंकि मॉडल मूल पैटर्न को दर्शा ही नहीं सकता। दोनों कर्व ऊँचे बने रहते हैं।

अंडरफिट मॉडल कर्व्स

अंडरफिट मॉडल कर्व्स

ओवरफिट मॉडल में, ट्रेनिंग कर्व लगभग शून्य तक गिरता है जबकि वैलिडेशन कर्व ऊँचा रहता है। ट्रेनिंग बढ़ने के साथ दोनों के बीच का गैप चौड़ा होता जाता है। चार्ट पर यही बढ़ता गैप ओवरफिटिंग दिखाता है।

ओवरफिट मॉडल कर्व्स

ओवरफिट मॉडल कर्व्स

एक स्वस्थ मॉडल में दोनों कर्व्स नीचे आते हैं और कम एरर पर मिलते हैं, उनके बीच छोटा गैप रहता है।

ओवरफिटिंग और अंडरफिटिंग क्यों होती हैं

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

अंडरफिटिंग के कारण

अंडरफिटिंग लगभग हमेशा तीन चीज़ों में से किसी एक तक पहुँचती है।

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

ओवरफिटिंग के कारण

ओवरफिटिंग तब आती है जब मॉडल को डेटा की ज़रूरत से ज़्यादा आज़ादी दे दी जाती है।

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

बायस-वेरीएंस ट्रेड-ऑफ

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

उच्च बायस

बायस वह त्रुटि है जो मॉडल की डेटा के बारे में धारणाओं से आती है। उच्च-बायस मॉडल की धारणाएँ कड़ी और सरल होती हैं। वह डेटा में चल रही वास्तविक जटिलता को दर्शा नहीं सकता।

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

यदि आप उच्च-बायस मॉडल को 100 बार अलग-अलग सैंपल पर ट्रेन करें, तो सभी 100 संस्करण समान गलतियाँ करेंगे। उनकी भविष्यवाणियाँ ग़लत उत्तर के आसपास समूहित होंगी।

उच्च वेरीएंस

वेरीएंस वह त्रुटि है जो मॉडल के अपने ट्रेनिंग डेटा के प्रति बहुत संवेदनशील होने से आती है। उच्च-वेरीएंस मॉडल हर छोटे पैटर्न को पकड़ लेता है, जो आमतौर पर शोर होता है।

यही ओवरफिटिंग है। मॉडल ट्रेनिंग सेट को बहुत क़रीबी से फिट करता है, लेकिन ट्रेनिंग डेटा में छोटे बदलाव भी बहुत अलग भविष्यवाणियाँ दे देते हैं।

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

ट्रेड-ऑफ

आप न तो बायस और न ही वेरीएंस को पूरी तरह हटा सकते हैं, सिर्फ़ इनके बीच संतुलन बदल सकते हैं।

बायस घटाने के लिए मॉडल को अधिक जटिल बनाइए, तो वेरीएंस बढ़ेगा। वेरीएंस घटाने के लिए मॉडल को सरल बनाइए, तो बायस बढ़ेगा। लक्ष्य है बीच का बिंदु, जहाँ कुल त्रुटि सबसे कम हो।

बायस-वेरीएंस ट्रेड-ऑफ उदाहरण

बायस-वेरीएंस ट्रेड-ऑफ उदाहरण

अंडरफिटिंग कैसे ठीक करें

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

  • मॉडल की जटिलता बढ़ाएँ: अधिक लचीले मॉडल पर जाएँ। लीनियर रिग्रेशन से पॉलिनोमियल रिग्रेशन, या उथले ट्री से गहरे ट्री पर।
  • अधिक फीचर्स जोड़ें: ऐसे नए इनपुट जोड़ें जिनमें वास्तविक मूल्य हो। इंटरैक्शन टर्म, पॉलिनोमियल फीचर्स, या डोमेन-विशिष्ट फीचर्स बनाएँ जिनकी मॉडल को पहुँच नहीं थी।
  • लंबे समय तक ट्रेन करें: हो सकता है मॉडल को कन्वर्ज करने के लिए पर्याप्त समय न मिला हो। अधिक इपॉक्स दें या अलग लर्निंग रेट शेड्यूल अपनाएँ।
  • रेग्युलराइज़ेशन घटाएँ: रेग्युलराइज़ेशन मॉडल को साधारण रखता है, जो अंडरफिटिंग के उल्टा है। रेग्युलराइज़ेशन स्ट्रेंथ घटाएँ या उसे पूरी तरह हटाएँ, ताकि मॉडल को अधिक स्वतंत्रता मिले।

कुछ अच्छे फीचर्स अक्सर आर्किटेक्चर बदलने से ज़्यादा असर डालते हैं। मॉडल बदलने से पहले यहीं से शुरुआत करें।

ओवरफिटिंग कैसे ठीक करें

ओवरफिटिंग ठीक करने का तरीका उलटा है। आप मॉडल को सीमित करना चाहते हैं ताकि वह ट्रेनिंग डेटा याद करना बंद करे।

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

रेग्युलराइज़ेशन और अर्ली स्टॉपिंग आमतौर पर सबसे पहले आज़माने वाली चीज़ें हैं। इनकी कोई अतिरिक्त लागत नहीं और अक्सर मददगार होती हैं।

विभिन्न मॉडलों में ओवरफिटिंग और अंडरफिटिंग

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

रैखिक मॉडल

  • अंडरफिट: रैखिक मॉडल सीधी रेखा जैसे रिश्ते मानते हैं। जब असली पैटर्न मुड़ता है, तो मॉडल उसे नहीं पकड़ पाता, चाहे जितना डेटा दे दें।
  • ओवरफिट: जब आप पर्याप्त पॉलिनोमियल या इंटरैक्शन टर्म जोड़ देते हैं, तो लीनियर रिग्रेशन भी शोर याद कर सकता है। Ridge और Lasso जैसे रेग्युलराइज़ेशन तरीक़े मुख्यतः इसी के लिए हैं।

डिसीजन ट्री

  • अंडरफिट: उथला ट्री केवल कुछ ही स्प्लिट कर सकता है। दो-तीन निर्णयों से वह उन पैटर्न्स को नहीं दर्शा सकता जिन्हें अधिक बारीकी चाहिए।
  • ओवरफिट: गहरे ट्री ओवरफिट करने की प्रवृत्ति रखते हैं। एक ट्री जो तब तक स्प्लिट करता रहे जब तक हर लीफ में एक ही ट्रेनिंग उदाहरण न रह जाए, ट्रेनिंग सटीकता परफेक्ट और टेस्ट सटीकता खराब देगा। इसी लिए max_depth, min_samples_split और प्रूनिंग जैसे पैरामीटर मौजूद हैं।

न्यूरल नेटवर्क

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

ओवरफिटिंग बनाम अंडरफिटिंग के अतिरिक्त उदाहरण

अब मैं आपको दो क्लासिक उदाहरण कोड सहित दिखाऊँगा, जो इन पैटर्न्स को देखना आसान बना देंगे।

पॉलिनोमियल रिग्रेशन

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

import numpy as np

# Data
np.random.seed(7)
X = np.linspace(0, 1, 30)
y_true = np.sin(2 * np.pi * X)
y = y_true + np.random.normal(0, 0.2, X.shape)

# Fit polynomials of three degrees
X_smooth = np.linspace(0, 1, 300)
degrees = [1, 3, 15]

for degree in degrees:
    coefs = np.polyfit(X, y, deg=degree)
    y_pred = np.polyval(coefs, X_smooth)

पॉलिनोमियल रिग्रेशन उदाहरण

पॉलिनोमियल रिग्रेशन उदाहरण

डिग्री 1 सीधी रेखा है जो अंडरफिट करती है। यह कर्व का पीछा कर ही नहीं पाती। डिग्री 3 असली आकृति दर्शाती है। यह कुछ शोर को समाहित करती है लेकिन सत्य के क़रीब रहती है। डिग्री 15 ओवरफिट करती है क्योंकि यह हर ट्रेनिंग पॉइंट के बीच से लहराती हुई निकलती है और उनके बीच बड़े दोलन पैदा करती है।

विभिन्न गहराई वाले डिसीजन ट्री

यही कहानी डिसीजन ट्री में भी दिखती है। आप समान डेटा पर बढ़ती गहराई वाले ट्री ट्रेन कर सकते हैं और ट्रेनिंग व टेस्ट सेट पर एरर माप सकते हैं।

import numpy as np
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# Data
np.random.seed(11)
X = np.linspace(0, 10, 250).reshape(-1, 1)
y = np.sin(X).ravel() + np.random.normal(0, 0.3, 250)

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=0
)

depths = range(1, 21)
train_errors = []
test_errors = []

for depth in depths:
    tree = DecisionTreeRegressor(max_depth=depth, random_state=0)
    tree.fit(X_train, y_train)
    train_errors.append(mean_squared_error(y_train, tree.predict(X_train)))
    test_errors.append(mean_squared_error(y_test, tree.predict(X_test)))

डिसीजन ट्री उदाहरण

डिसीजन ट्री उदाहरण

ट्री के गहरा होने पर ट्रेनिंग एरर घटता है, और अंततः तब लगभग शून्य हो जाता है जब हर लीफ में एक ही ट्रेनिंग पॉइंट बचता है। टेस्ट एरर शुरू में घटता है क्योंकि ट्री डेटा में असली संबंधों को पकड़ता है, फिर जैसे-जैसे गहरे स्प्लिट शोर को फिट करने लगते हैं, यह फिर बढ़ने लगता है। न्यूनतम उस डेप्थ पर आता है जो दोनों के बीच संतुलन बनाता है।

मॉडल प्रदर्शन का निदान करते समय आम गलतियाँ

सही मेट्रिक चुन लेने पर भी, गलत निष्कर्ष निकालना आसान है। मॉडल प्रदर्शन का मूल्यांकन करते समय ये चीज़ें नहीं करनी चाहिए:

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

किसी मॉडल पर रुकने से पहले आपको हमेशा इन चारों की जाँच करनी चाहिए। ज़्यादातर प्रोडक्शन विफलताएँ इनमें से एक (या अधिक) से जुड़ी होती हैं।

निष्कर्ष

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

ट्रेनिंग का असली लक्ष्य इन दोनों के बीच कहीं पहुँचना है, जहाँ बायस और वेरीएंस संतुलित हों और कुल त्रुटि सबसे कम हो।

वैलिडेशन प्रदर्शन वह मेट्रिक है जो बताता है कि आप कहाँ हैं। ट्रेनिंग के दौरान इसे ट्रैक करें और ट्रेनिंग व वैलिडेशन एरर के अंतर को अपने फैसलों का मार्गदर्शन करने दें। यदि वैलिडेशन एरर रुक जाए या बढ़ने लगे जबकि ट्रेनिंग एरर घटता रहे, तो आप मीठे बिंदु से आगे निकल चुके हैं। यदि दोनों ऊँचे बने रहें, तो आप अभी तक उस बिंदु पर नहीं पहुँचे।

2026 में उन्नत डेटा साइंस अवधारणाएँ सीखना और नौकरी के लिए तैयार होना चाहते हैं? हमारे Machine Learning Engineer ट्रैक में नामांकन करें और बेसिक्स से लेकर MLOps तक जाएँ।

FAQs

ओवरफिटिंग और अंडरफिटिंग में क्या अंतर है?

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

मुझे कैसे पता चले कि मेरा मॉडल ओवरफिटिंग कर रहा है या अंडरफिटिंग?

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

बायस-वेरीएंस ट्रेड-ऑफ क्या है?

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

क्या अधिक डेटा एकत्र करना ओवरफिटिंग को ठीक करता है?

आम तौर पर मदद मिलती है, लेकिन यह गारंटीड समाधान नहीं है। अधिक डेटा मॉडल के लिए याद करना कठिन बना देता है, इसलिए इसे पूरे सेट में लागू होने वाले पैटर्न ढूँढने पड़ते हैं। लेकिन अगर आपका मॉडल समस्या के लिए बहुत ज़्यादा जटिल है, या आपके फीचर्स में ज़्यादातर शोर है, तो केवल अधिक डेटा इसे पूरी तरह नहीं सुलझाएगा। ऐसे मामलों में रेग्युलराइज़ेशन और सरल मॉडल अक्सर बेहतर काम करते हैं।

क्या मैं न्यूरल नेटवर्क में ओवरफिटिंग रोकने के लिए अर्ली स्टॉपिंग का उपयोग कर सकता/सकती हूँ?

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

विषय

DataCamp के साथ सीखें

course

Feature Engineering for Machine Learning in Python

4 घंटा
38.8K
Create new features to improve the performance of your Machine Learning models.
विस्तृत जानकारी देखेंRight Arrow
कोर्स शुरू करें
और देखेंRight Arrow