पीसीए और ट्रेन / परीक्षण विभाजित


35

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

क्या पूरे डेटासेट के लिए एक बार पीसीए करना संभव है और फिर ऊपर वर्णित के रूप में क्रॉस-वैलिडेशन के लिए कम आयामीता के नए डेटासेट का उपयोग करें? या क्या मुझे हर प्रशिक्षण सेट के लिए एक अलग पीसीए करने की ज़रूरत है (जिसका मतलब होगा हर क्लासिफायर के लिए और हर क्रॉस-मान्यता तह के लिए एक अलग पीसीए करना)?

एक तरफ, पीसीए लेबल का कोई उपयोग नहीं करता है। दूसरी ओर, यह परिवर्तन करने के लिए परीक्षण डेटा का उपयोग करता है, इसलिए मुझे डर है कि यह परिणाम पूर्वाग्रह कर सकता है।

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


आगामी संदर्भ के लिए। इस सवाल को देखें कि caretपैकेज में आर के साथ पीसीए के साथ क्रॉस-सत्यापन कैसे किया जाए : कैरेट में पीसीए और के-गुना क्रॉस सत्यापन
अमीबा का कहना है कि मोनिका


जवाबों:


34

सामान्यीकरण त्रुटि को मापने के लिए, आपको बाद में करने की आवश्यकता है: प्रत्येक प्रशिक्षण सेट के लिए एक अलग पीसीए (जिसका अर्थ होगा हर क्लासिफायर के लिए और प्रत्येक सीवी गुना के लिए एक अलग पीसीए करना)।

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


  • आपको उपयोग करने के लिए पीसी की संख्या के लिए एक स्वचालित मानदंड को परिभाषित करने की आवश्यकता होगी।
    जैसा कि "वास्तविक" वर्गीकरण से पहले यह केवल एक पहला डेटा कटौती कदम है, कुछ पीसी का उपयोग करने से संभवतः प्रदर्शन को चोट नहीं पहुंचेगी। यदि आपको उम्मीद है कि अनुभव से कितने पीसी अच्छे होंगे, तो आप शायद इसका उपयोग कर सकते हैं।

  • आप बाद में यह भी परीक्षण कर सकते हैं कि क्या प्रत्येक सरोगेट मॉडल के लिए पीसीए को फिर से करना आवश्यक था (केवल एक पीसीआई मॉडल के साथ विश्लेषण को दोहराते हुए)। मुझे लगता है कि इस परीक्षण का परिणाम रिपोर्टिंग के लायक है।

  • मैंने एक बार पीसीए को नहीं दोहराने के पूर्वाग्रह को मापा, और पाया कि मेरे स्पेक्ट्रोस्कोपिक वर्गीकरण डेटा के साथ, मैंने हर सरोगेट मॉडल के लिए पीसीए को फिर से नहीं करने पर सामान्यीकरण त्रुटि दर का केवल आधा पता लगाया।

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


मुझे अभी भी यह महसूस करना मुश्किल हो रहा है कि पूरे डेटासेट पर एक प्रारंभिक पीसीए कैसे वर्ग लेबल देखे बिना परिणामों को पूर्वाग्रह करेगा।

लेकिन यह डेटा को देखता है। और अगर वर्ग-वर्ग विचरण भीतर-वर्ग विचरण की तुलना में बड़ा है, तो बीच-वर्ग विचरण PCA प्रक्षेपण को प्रभावित करेगा। आमतौर पर पीसीए चरण किया जाता है क्योंकि आपको वर्गीकरण को स्थिर करने की आवश्यकता होती है। यही है, ऐसी स्थिति में जहां अतिरिक्त मामले करते हैं मॉडल प्रभावित करते हैं।

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


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

@ बिटवाइज: कृपया मेरा संपादन देखें
cbeleites

हाय @cbeleites, मैं इस धागे को पीसीए और ट्रेन / टेस्ट बंटवारे के बारे में सवालों के लिए एक "विहित" धागा बनाना चाहता हूं (कई हैं!) और उन्हें डुप्लिकेट के रूप में चिह्नित करें। मैंने आपके उत्तर में एक वाक्य जोड़ने की स्वतंत्रता ली, जो एक गलतफहमी को दूर कर सकता है जो अक्सर नकली प्रश्नों में उत्पन्न होती है। आशा है कि आप मेरे संपादन से खुश हैं, लेकिन कृपया जाँच करें! +1, btw।
अमीबा का कहना है कि मोनिका

@ नमस्कार, बहुत बहुत धन्यवाद। हां, यह एक महत्वपूर्ण बिंदु है जिसे आपने जोड़ा है। सवालों के संग्रह को साफ करने में आपके द्वारा दिए गए काम के लिए बहुत धन्यवाद।
केबेलाइट्स मोनिका का

1
@FelipeAlmeida: हाँ
केबेलाइट्स

2

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

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


0

हर बार प्रशिक्षण सेट पर बाद के पीसीए करें

पीसीए में, हम कम मैट्रिक्स सीखते हैं: यू जो हमें प्रक्षेपण प्राप्त करने में मदद करता हैZ_train = U x X_train

परीक्षण के समय, हम प्रशिक्षण चरण से सीखे गए समान यू का उपयोग करते हैं और फिर प्रक्षेपण की गणना करते हैंZ_test = U x X_test

इसलिए, अनिवार्य रूप से हम प्रशिक्षण के दौरान प्राप्त कम सुविधा स्थान पर परीक्षण सेट कर रहे हैं ।

अंतर्निहित धारणा, यह है कि परीक्षण और ट्रेन सेट एक ही वितरण से आना चाहिए, जो ऊपर की विधि बताता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.