यदि प्रशिक्षण लक्ष्य है तो मानकीकरण / प्रशिक्षण और सामान्यीकरण कैसे लागू करें?


47
  1. क्या मैं एक ही समय में अपने सभी डेटा या सिलवटों को बदल देता हूं (यदि CV लागू है)? जैसे

    (allData - mean(allData)) / sd(allData)

  2. क्या मैं ट्रेनसेट और टेस्टसेट को अलग-अलग करूंगा? जैसे

    (trainData - mean(trainData)) / sd(trainData)

    (testData - mean(testData)) / sd(testData)

  3. या क्या मैं ट्रेनसेट को बदल देता हूं और टेस्टसेट पर गणना का उपयोग करता हूं? जैसे

    (trainData - mean(trainData)) / sd(trainData)

    (testData - mean(trainData)) / sd(trainData)

मेरा मानना ​​है कि 3 सही तरीका है। यदि 3 सही है, तो मुझे इस बात की चिंता करनी होगी कि इसका मतलब 0 नहीं है या सीमा 0 [के बीच नहीं है; 1] या [-1; 1] (सामान्यीकरण) अंडकोष का?


क्या इसमें इसे शामिल करने का कोई उपयुक्त तरीका है R? यह प्रश्न देखें: stackoverflow.com/questions/49260862/…
Boern

जवाबों:


41

तीसरा तरीका सही है। सटीक रूप से द एलिमेंट्स ऑफ़ स्टैटिस्टिकल लर्निंग के अद्भुत विवरण में क्यों कवर किया गया है , स्टॉक मार्केट उदाहरण में "द राइट एंड राइट टू डू क्रॉस-वेलिडेशन" अनुभाग देखें और लर्निंग फ्रॉम डेटा के अंतिम अध्याय में भी देखें।

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

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

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

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


बिल्कुल यही मैने सोचा। इसे स्पष्ट करने के लिए धन्यवाद!
डेरोम सिप

Clearly, one thing you cannot do is aggregate over all new data-points past and future to normalize your production stream of data। क्यों नहीं?
अनमोल सिंह जग्गी

1
@AnmolSinghJaggi इसके "और भविष्य"। यदि आपने वास्तव में अभी तक डेटा एकत्र नहीं किया है, तो आप इसका उपयोग सामान्य नहीं कर सकते हैं।
मैथ्यू ड्र्यू

4
@ बाढ़ यदि आप "अतीत" डेटा के रूप में प्रशिक्षण डेटा के बारे में सोचते हैं, और डेटा को "वर्तमान या भविष्य" के रूप में परीक्षण करते हैं, तो अपने परीक्षण डेटा को जोड़कर आप एक्स के भविष्य के बारे में जानकारी का उपयोग करते हैं । डेटा रिसाव केवल आपके लिए लीक करने के बारे में नहीं है। भविष्यवाणियों, यह भविष्य से जानकारी लीक करने के बारे में भी है। अंगूठे का एक अच्छा नियम यह है कि आपको केवल एक पंक्ति या आपके परीक्षण डेटा का उपयोग करके भविष्यवाणियां करने में सक्षम होना चाहिए , अन्यथा आप भविष्य का उपयोग कर रहे हैं। y
मैथ्यू ड्र्यू

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