क्रॉस-वैलिडेशन के बाद क्लासिफायर का चयन कैसे करें?


13

जब हम के-फोल्ड क्रॉस सत्यापन करते हैं, तो क्या हमें उस क्लासिफायर का उपयोग करना चाहिए जिसमें सबसे अधिक परीक्षण सटीकता हो? क्रॉस वैरिफिकेशन से क्लासिफायर होने में आमतौर पर सबसे अच्छा तरीका क्या है?


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

@NathanMcCoy अच्छी तरह से यह मानते हुए कि हम सटीकता उठाते हैं, हम उच्चतम परीक्षण सटीकता के साथ क्लासिफायर का चयन करेंगे?
अर्मेन सफाई

ज़रूर! बस :) के बारे में सोचने के लिए कुछ और उल्लेख करने की कोशिश कर रहा है
नाथन मैककॉय

जवाबों:


15

जब आप इन दोनों में से कोई भी कार्य करना चाहते हैं, तो आप क्रॉस-वेरीगेशन करते हैं:

  • मॉडल चयन
  • किसी मॉडल का त्रुटि अनुमान

मॉडल चयन विभिन्न परिदृश्यों में आ सकता है:

  • किसी विशेष समस्या / डेटासेट के लिए एक एल्गोरिथम बनाम अन्य का चयन करना
  • किसी विशेष समस्या / डेटासेट के लिए किसी विशेष एल्गोरिथ्म के हाइपर-मापदंडों का चयन करना

(कृपया ध्यान दें कि यदि आप दोनों एक एल्गोरिथ्म का चयन कर रहे हैं - इसे मॉडल कहना बेहतर है - और हाइपर-पैरामीटर खोज भी कर रहे हैं, तो आपको नेस्टेड क्रॉस वैलिडेशन करने की आवश्यकता है। क्या नेस्टेड-सीवी वास्तव में आवश्यक है? )

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

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

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

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

यहाँ, विषय के बारे में एक अंतिम अच्छी व्याख्या: CV और मॉडल का चयन


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

+1 के लिए "उस व्यक्ति को चुना जिसने त्रुटि और सिलवटों के बीच इसके विचरण के बारे में बेहतर प्रदर्शन किया "। हर कोई मॉडल का चयन करते समय सिलवटों के बीच विचरण को नजरअंदाज करता है।
stmax

मुझे परीक्षण त्रुटि की परवाह क्यों करनी चाहिए यदि केवल CV त्रुटि है जो मुझे परवाह है? मैंने पूछा क्योंकि आपने "वास्तव में सीवी प्रक्रिया द्वारा दी गई अनुमानित त्रुटि पर लिखा था।"
हैलोवर्ल्ड

एक और प्रश्न। क्या होगा यदि संपूर्ण डेटासेट के लिए निर्मित CV से सर्वश्रेष्ठ मॉडल सबसे अच्छा मॉडल नहीं है?
हैलोवर्ल्ड

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

8

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

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


मैंने सोचा कि के-फोल्ड क्रॉस सत्यापन के विभिन्न मॉडल बनाता है क्योंकि प्रशिक्षण डेटा के 10 अलग-अलग सेट हैं।
अरमान सफ़ाई

मेरे अद्यतन उत्तर की जाँच करें। मैंने इसे सीधे प्रश्न को संबोधित करने और एक उदाहरण के साथ बेहतर समझाने के लिए इसे परिष्कृत किया।
20

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

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

1

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

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

केवल एक मॉडल में आ रहा है और यदि आप k- गुना क्रॉस-सत्यापन के साथ जाँच कर रहे हैं, तो आप परीक्षण डेटा की त्रुटियों का लगभग अनुमान लगा सकते हैं, लेकिन when you are actually training it finally, you can use the complete training data(क्योंकि यह यहाँ माना जाता है कि पूरा डेटा एक साथ इसके एक भाग से बेहतर प्रदर्शन करेगा। .यह कभी-कभी मामला नहीं हो सकता है, लेकिन यह सामान्य धारणा है।)


जब हम क्रॉस सत्यापन करते हैं, तो हम केवल उस मॉडल का चयन करते हैं जिसमें सबसे अधिक परीक्षण सटीकता है?
अरनम सफ़ाई

जब आप परीक्षण कहते हैं, तो आपका मतलब सत्यापन डेटासेट परीक्षण सही है?
हेमा वर्षा

हाँ मैं क्या मतलब
Armon Safai

एक बार जब हमने बेहतर प्रदर्शन करने वाले मॉडल का चयन करने के लिए क्रॉस-वैलिडेशन का उपयोग किया है (उदाहरण के लिए आपके पास 2 मॉडल-रैखिक प्रतिगमन या तंत्रिका नेटवर्क है), तो हम उस मॉडल को प्रशिक्षित करते हैं (चाहे वह रैखिक प्रतिगमन या तंत्रिका नेटवर्क हो) सभी डेटा पर
हेमा वर्षा

1
@ हेमवृष इसलिए यदि हम औसत लेने का फैसला करते हैं, तो हम "औसत श्रेणीबद्धता" का चयन कैसे करेंगे?
अर्मेन सफाई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.