ओवरफ़िटिंग का मतलब है, मॉडल बनाना जो मिलान करता है (याद रखता है) ट्रेनिंग सेट ध्यान रखें कि मॉडल नए डेटा के लिए सही अनुमान नहीं लगा पाता. ओवरफ़िट मॉडल ऐसे आविष्कार की तरह ही होता है जो लैब में अच्छा परफ़ॉर्म करता है, लेकिन वास्तविक दुनिया में कुछ भी उपयोगी नहीं है.
आकृति 11 में, कल्पना करें कि प्रत्येक ज्यामितीय आकार एक पेड़ की स्थिति को दिखाता है एक वर्गाकार जंगल में. नीले हीरों से पता चलता है कि पेड़-पौधे कौनसे हैं, जबकि नारंगी रंग के गोले, बीमार पेड़ों की जगह पर निशान लगाते हैं.
अलग-अलग करने के लिए, दिमागी तौर पर कोई भी आकार—लाइन, कर्व, अंडाकार...कुछ भी बनाएं—बनाएं बीमार पेड़ों से सुरक्षित रूप से बचे हुए पेड़. इसके बाद, जानकारी देखने के लिए अगली लाइन को बड़ा करें से अलग हो सकता है.
चित्र 12 में दिखाए गए जटिल आकारों को छोड़कर बाकी सभी को सफलतापूर्वक वर्गीकृत किया गया है पेड़. अगर हम आकृतियों को मॉडल के रूप में देखें, तो यह बहुत बढ़िया है मॉडल.
या फिर ऐसा होना चाहिए? एक सही मायनों में एक बेहतरीन मॉडल, नए उदाहरणों को सही कैटगरी में बांटता है. इमेज 13 में दिखाया गया है कि जब वही मॉडल नए प्रॉडक्ट के लिए अनुमान लगाता है, तो क्या होता है टेस्ट सेट के उदाहरण:
इसलिए, इमेज 12 में दिखाए गए कॉम्प्लेक्स मॉडल ने ट्रेनिंग सेट पर अच्छा काम किया लेकिन टेस्ट सेट पर यह काम बहुत बुरा रहा. यह मॉडल का क्लासिक केस है ओवरफ़िट करना.
फ़िटिंग, ओवरफ़िटिंग, और अंडरफ़िटिंग
मॉडल को नए डेटा के लिए अच्छे अनुमान लगाने चाहिए. इसका मतलब है कि आपको ऐसा मॉडल बनाना है जो "फ़िट" हो नया डेटा है.
आपने देखा कि ओवरफ़िट मॉडल, ट्रेनिंग के लिए सबसे सही अनुमान लगाता है सेट है, लेकिन नए डेटा के लिए अनुमान खराब हैं. अगर आप अंडरफ़िट मॉडल ट्रेनिंग डेटा का सही अनुमान भी नहीं लगा पाता. अगर ओवरफ़िट मॉडल ऐसे प्रॉडक्ट जो लैब में अच्छा परफ़ॉर्म करते हैं, लेकिन असल दुनिया में खराब परफ़ॉर्म करते हैं, तो अंडरफ़िट मॉडल उस प्रॉडक्ट की तरह है जो बेहतर परफ़ॉर्म भी नहीं करता को भी बनाए रख सकते हैं.
सामान्यीकरण का मतलब है ये दो अलग-अलग चीज़ें होती हैं. इसका मतलब है कि यह मॉडल सही तरीके से लोगों के लिए अच्छा होता है. सुझाव दिए जाते हैं. आपका लक्ष्य एक ऐसा मॉडल बनाना है जो सभी के लिए नए डेटा का बहुत ज़्यादा इस्तेमाल किया जा सकता है.
ओवरफ़िटिंग का पता लगाना
यहां दिए गए कर्व की मदद से, ज़रूरत से ज़्यादा फ़िट होने वाली कसरत का पता लगाया जा सकता है:
- लॉस कर्व
- सामान्यीकरण कर्व
लॉस कर्व से, मॉडल के लॉस का अनुमान लगाया जाता है बार-बार ट्रेनिंग नहीं दी जा सकती. दो या दो से ज़्यादा लॉस कर्व दिखाने वाले ग्राफ़ को सामान्यीकरण कहा जाता है कर्व. नीचे दिए गए सामान्यीकरण कर्व दो लॉस कर्व दिखाता है:
ध्यान दें कि दो लॉस कर्व पहले समान रूप से व्यवहार करते हैं और फिर विचलन करते हैं. इसका मतलब है कि बार-बार दोहराने के बाद, नुकसान में गिरावट या ट्रेनिंग सेट के लिए स्थिर (अभिरूपित) रहता है, लेकिन बढ़ जाता है का इस्तेमाल करें. यह ओवरफ़िटिंग का सुझाव देता है.
इसके उलट, किसी अच्छी तरह फ़िट होने वाले मॉडल के लिए सामान्यीकरण कर्व दो लॉस कर्व दिखाता है जिनके आकार एक जैसे होते हैं.
ओवरफ़िटिंग की वजह क्या है?
मोटे तौर पर, ओवरफ़िटिंग इनमें से एक या दोनों वजहों से होती है समस्याएं:
- ट्रेनिंग सेट, असल ज़िंदगी के डेटा को सही तरह से नहीं दिखाता (या पुष्टि करने के लिए सेट या टेस्ट सेट).
- मॉडल बहुत जटिल है.
सामान्य शर्तें
एक मॉडल, ट्रेनिंग सेट पर ट्रेनिंग लेता है, लेकिन असल में यह देखा जाता है कि मॉडल कितना सही है यह नए उदाहरणों, खास तौर पर असल दुनिया के डेटा पर अनुमान लगाता है. मॉडल डेवलप करते समय, आपका टेस्ट सेट, असल दुनिया के डेटा के लिए प्रॉक्सी के तौर पर काम करता है. आम तौर पर इस्तेमाल किए जाने वाले मॉडल को ट्रेनिंग देने से, डेटासेट की इन शर्तों का पता चलता है:
- उदाहरण: स्वतंत्र रूप से और एक जैसे तरीके से डिस्ट्रिब्यूट किए गए, जो यह कहने का एक आधुनिक तरीका है कि आपके उदाहरण एक-दूसरे पर असर नहीं डाल सकते.
- डेटासेट यह है स्टेशनरी, जिसका मतलब है डेटासेट में समय के साथ ज़्यादा बदलाव नहीं होता.
- डेटासेट पार्टिशन का डिस्ट्रिब्यूशन एक जैसा है. इसका मतलब है कि ट्रेनिंग सेट में मौजूद उदाहरण, आंकड़ों के हिसाब से पुष्टि करने के सेट, टेस्ट सेट, और असल दुनिया के डेटा में उदाहरण के साथ.
नीचे दिए गए अभ्यासों के ज़रिए पिछली स्थितियों के बारे में जानें.
व्यायाम: अपनी समझ को परखें
चैलेंज व्यायाम
आप एक ऐसा मॉडल बना रहे हैं जो राइडर के लिए, वाहन खरीदने की सही तारीख का अनुमान लगाएगा किसी खास रास्ते का ट्रेन टिकट. उदाहरण के लिए, मॉडल आपके समाचार संगठन के लिए, कि उपयोगकर्ता 8 जुलाई को 23 जुलाई को रवाना होने वाली ट्रेन का टिकट खरीदते हैं. ट्रेन कंपनी हर घंटे किराये की जानकारी अपडेट करती है. ऐसा अलग-अलग तरह के अपडेट के हिसाब से किया जाता है कई फ़ैक्टर हैं, लेकिन ये मुख्य रूप से मौजूदा सीटों की संख्या पर निर्भर करते हैं. यानी:
- अगर बहुत ज़्यादा सीटें उपलब्ध होती हैं, तो आम तौर पर टिकट के शुल्क कम होते हैं.
- अगर बहुत कम सीटें उपलब्ध होती हैं, तो आम तौर पर टिकट के शुल्क ज़्यादा होते हैं.
जवाब: असल दुनिया का मॉडल किसी समस्या से जूझ रहा है फ़ीडबैक लूप.
उदाहरण के लिए, मान लें कि मॉडल, उपयोगकर्ताओं को 8 जुलाई को टिकट खरीदने का सुझाव देता है. मॉडल के सुझाव का इस्तेमाल करने वाली कुछ राइडर अपने टिकट 8:30 बजे खरीदती हैं 8 जुलाई की सुबह में. 9:00 बजे, ट्रेन कंपनी किराया बढ़ा देती है, अब कुछ सीटें उपलब्ध हैं. मॉडल के सुझाव का इस्तेमाल करने वाली राइडर के पास बदली गई कीमतें. शाम तक, टिकट के मूल्य सुबह.