यह सुनिश्चित करने का एक तरीका यह सुनिश्चित करना है कि आपने उन सभी चीजों को कोडित किया है जो आप मॉडल को फिट करने के लिए करते हैं, यहां तक कि "टिंकरिंग" भी। इस तरह, जब आप प्रक्रिया को बार-बार चलाते हैं, तो क्रॉस-वैलिडेशन के माध्यम से कहते हैं, आप चीजों को रनों के बीच लगातार बनाए हुए हैं। यह सुनिश्चित करता है कि भिन्नता के सभी संभावित स्रोत क्रॉस-वेलिडेशन प्रक्रिया द्वारा कैप्चर किए गए हैं।
अन्य vitally महत्वपूर्ण बात यह सुनिश्चित करना है कि आपके पास एक प्रतिनिधि नमूना है, दोनों डेटा सेट में। यदि आपका डेटा सेट उस तरह के डेटा का प्रतिनिधि नहीं है जिसकी आप भविष्यवाणी करने के लिए उपयोग करने की उम्मीद करते हैं, तो ऐसा बहुत कुछ नहीं है जो आप कर सकते हैं। सभी मॉडलिंग इस धारणा पर टिकी हुई है कि "इंडक्शन" काम करता है - जिन चीजों को हमने नहीं देखा है वे उन चीजों की तरह व्यवहार करते हैं जिन्हें हमने देखा है।
एक सामान्य नियम के रूप में, जटिल मॉडल फिटिंग प्रक्रियाओं से दूर रहें जब तक कि (i) आपको पता न हो कि आप क्या कर रहे हैं, और (ii) आपने सरल तरीके आजमाए हैं, और पाया कि वे काम नहीं करते हैं, और जटिल विधि कैसे ठीक करती है सरल विधि के साथ समस्याओं। "सरल" और "जटिल" का अर्थ फिटिंग करने वाले व्यक्ति को "सरल" या "जटिल" के अर्थ में है। इसका कारण इतना महत्वपूर्ण है कि यह आपको उन परिणामों पर लागू करने की अनुमति देता है जो मुझे "सूँघने की परीक्षा" के लिए कहते हैं। क्या परिणाम सही दिखता है? आप ऐसी प्रक्रिया से परिणामों को "सूँघ" नहीं सकते, जिसे आप नहीं समझते हैं।
नोट: अगले, मेरा उत्तर की नहीं बल्कि लंबे समय तक हिस्सा मेरे अनुभव है, जो में है पर आधारित है क्षेत्र, के साथ संभवतः बड़े। मैं लगभग निश्चित हूं कि नीचे दी गई बातें या मामलों पर लागू नहीं होंगीN>>p p N≈p N<p
जब आपके पास एक बड़ा नमूना होता है, तो दिए गए अवलोकन का उपयोग करने और न करने के बीच का अंतर बहुत छोटा होता है, बशर्ते आपका मॉडलिंग बहुत "स्थानीय" न हो। ऐसा इसलिए है क्योंकि किसी दिए गए डेटा बिंदु का प्रभाव आमतौर पर का क्रम होता है । इसलिए बड़े डेटा सेटों में, परीक्षण डेटा सेट को "होल्ड आउट" से प्राप्त होने वाले अवशिष्ट मूल रूप से वही होते हैं जो आपको प्रशिक्षण डेटा सेट में उपयोग करने से प्राप्त होते हैं। आप इसे कम से कम वर्गों का उपयोग करके दिखा सकते हैं। अवशिष्ट जो आपको वें अवलोकन को छोड़कर मिलता है (यानी यदि हम परीक्षण सेट में अवलोकन सेट करते हैं तो परीक्षण सेट त्रुटि क्या होगी) , जहाँ प्रशिक्षण अवशिष्ट है, और1Nietesti=(1−hii)−1etrainietrainihii वें डेटा बिंदु का लाभ उठाने वाला है । अब हमारे पास , जहाँ प्रतिगमन में चर की संख्या है। अब यदि , तो किसी भी लिए परीक्षण सेट और प्रशिक्षण सेट त्रुटियों के बीच एक प्रशंसनीय अंतर बनाने के लिए काफी मुश्किल है । हम एक सरल उदाहरण ले सकते हैं, मान लीजिए (अवरोधन और चर), डिज़ाइन मैट्रिक्स (प्रशिक्षण और परीक्षण सेट दोनों), और उत्तोलन हैi∑ihii=ppN>>phiip=21N×pX
hii=xTi(XTX)−1xi=1Ns2x(1xi)(x2¯¯¯¯¯−x¯¯¯−x¯¯¯1)(1xi)=1+x~2iN
जहाँ , , और । अंत में, मानकीकृत भविष्यवक्ता चर है, और मापता है कि कितने मानक विचलन का अर्थ है। इसलिए, हम शुरुआत से जानते हैं कि परीक्षण सेट त्रुटि प्रशिक्षण सेट के "किनारे पर" टिप्पणियों के लिए प्रशिक्षण सेट त्रुटि से बहुत बड़ी होगी। लेकिन यह मूल रूप से है कि प्रतिनिधि फिर से जारी करते हैं - "बीच में" टिप्पणियों की तुलना में "किनारे पर" कम प्रतिनिधि हैं। इसके अतिरिक्त, यह ऑर्डर करना है । इसलिए यदि आपके पास अवलोकन हैं, भले हीx¯¯¯=N−1∑ixix2¯¯¯¯¯=N−1∑ix2is2x=x2¯¯¯¯¯−x¯¯¯2x~i=xi−x¯¯¯sxxi1N100x~i=5 (अधिकांश परिभाषाओं द्वारा एक्स-स्पेस में एक बाहरी स्थिति), इसका मतलब , और परीक्षण त्रुटि को केवल कारक से समझा जाता है । यदि आपके पास एक बड़ा डेटा सेट है, तो बोलें , यह और भी छोटा है, , जो से कम है । वास्तव में, के लिए टिप्पणियों, आप का एक निरीक्षण की आवश्यकता होगी के लिए एक बनाने के लिए के तहत अनुमान परीक्षण सेट त्रुटि के, प्रशिक्षण सेट त्रुटि का उपयोग कर।hii=261001−26100=74100100001−26100001%10000x~=5025%
तो बड़े डेटा सेट के लिए, एक परीक्षण सेट का उपयोग करना न केवल अक्षम है, यह अनावश्यक भी है, इसलिए । यह ओएलएस के लिए लागू होता है और जीएलएम के लिए भी लगभग लागू होता है (विवरण जीएलएम के लिए अलग हैं, लेकिन सामान्य निष्कर्ष समान है)। से अधिक आयामों में, "आउटलेयर" बड़े "प्रमुख घटक" स्कोर के साथ टिप्पणियों द्वारा परिभाषित किया गया है। यह लिख कर दिखाया जा सकता है कहाँ (ओर्थोगोनल) आइजन्वेक्टर के लिए मैट्रिक्स है , eigenvalue मैट्रिक्स के साथ । हमें जहांN>>p2hii=xTiEET(XTX)−1EETxiEXTXΛhii=zTiΛ−1zi=∑pj=1z2jiΛjjzi=ETxi लिए प्रमुख घटक स्कोर है ।xi
यदि आपके परीक्षण सेट में अवलोकन हैं, तो आपको एक मैट्रिक्स संस्करण , जहां और परीक्षण सेट में डिज़ाइन मैट्रिक्स की पंक्तियाँ हैं। इसलिए, ओएलएस प्रतिगमन के लिए, आप पहले से ही जानते हैं कि "परीक्षण सेट" त्रुटियां डेटा के सभी संभावित विभाजन प्रशिक्षण और परीक्षण सेटों में क्या होती हैं। इस मामले में ( ), डेटा को विभाजित करने की कोई आवश्यकता नहीं है। आप वास्तव में डेटा को विभाजित किए बिना "सबसे अच्छा मामला" और "सबसे खराब स्थिति" परीक्षण लगभग किसी भी आकार की त्रुटियों की रिपोर्ट कर सकते हैं। यह बहुत सारे पीसी समय और संसाधनों को बचा सकता है।ketest{k}=(Ik−H{k})−1etrain{k}H{k}=X{k}(XTX)−1XT{k}X{k}N>>p
मूल रूप से, यह सभी BIC या AIC जैसे प्रशिक्षण और परीक्षण त्रुटियों के बीच अंतर के लिए एक दंड शब्द का उपयोग करने के लिए कम करता है। यह प्रभावी रूप से उसी परिणाम को प्राप्त करता है जैसा कि एक परीक्षण सेट का उपयोग करता है, हालांकि आप संभावित उपयोगी जानकारी को फेंकने के लिए मजबूर नहीं होते हैं। BIC के साथ, आप मॉडल के लिए प्रमाण प्रस्तुत कर रहे हैं, जो गणितीय रूप से दिखता है:
p(D|MiI)=p(y1y2…yN|MiI)
ध्यान दें कि इस प्रक्रिया में, हम किसी भी आंतरिक मापदंडों का अनुमान नहीं लगा सकते हैं - प्रत्येक मॉडल को पूरी तरह से निर्दिष्ट किया जाना चाहिए या इसके आंतरिक मापदंडों को एकीकृत किया जाना चाहिए। हालांकि, हम उत्पाद नियम का उपयोग करके और फिर परिणाम का लॉग लेकर, इस लुक को क्रॉस वेलिडेशन (एक विशिष्ट नुकसान फ़ंक्शन का उपयोग करके) बना सकते हैं:Mi
p(D|MiI)=p(y1|MiI)p(y2…yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3…yN|y1y2MiI)
=⋯=∏i=1Np(yi|y1…yi−1MiI)
⟹log[p(D|MiI)]=∑i=1Nlog[p(yi|y1…yi−1MiI)]
यह क्रॉस सत्यापन का एक रूप सुझाता है, लेकिन जहां प्रशिक्षण सेट लगातार अपडेट किया जा रहा है, परीक्षण सेट से एक बार में एक अवलोकन - कलमन फ़िल्टर के समान। हम वर्तमान प्रशिक्षण सेट का उपयोग करके परीक्षण सेट से अगले अवलोकन की भविष्यवाणी करते हैं, सशर्त लॉग-लाइबिलिटी का उपयोग करके मनाया मूल्य से विचलन को मापते हैं, और फिर नए अवलोकन को शामिल करने के लिए प्रशिक्षण सेट को अपडेट करते हैं। लेकिन ध्यान दें कि यह प्रक्रिया सभी उपलब्ध डेटा को पूरी तरह से पचाती है, जबकि एक ही समय में यह सुनिश्चित करती है कि हर अवलोकन को "आउट-ऑफ-सैंपल" मामले के रूप में जांचा जाता है। यह भी अपरिवर्तनीय है, इसमें कोई फर्क नहीं पड़ता कि आप "अवलोकन 1" या "अवलोकन 10" को क्या कहते हैं; परिणाम समान है (गणना दूसरों की तुलना में कुछ क्रमपरिवर्तन के लिए आसान हो सकती है)। यदि हम परिभाषित करते हैं तो नुकसान का कार्य भी "अनुकूली" है L i iLi=log[p(yi|y1…yi−1MiI)] , फिर का तेज पर निर्भर करता है , क्योंकि हानि फ़ंक्शन लगातार नए डेटा के साथ अपडेट किया जा रहा है।Lii
मेरा सुझाव है कि इस तरह से अनुमानित मॉडल का आकलन करना काफी अच्छा काम करेगा।