14

रिग्रेशन या वर्गीकरण करते समय, डेटा को प्रीप्रोसेस करने के लिए सही (या बेहतर) तरीका क्या है?पीसीए पहले या सामान्यीकरण पहले?

  1. डेटा सामान्यीकृत करें -> पीसीए -> प्रशिक्षण
  2. पीसीए -> पीसीए उत्पादन को सामान्य -> ​​प्रशिक्षण
  3. डेटा सामान्यीकृत करें -> पीसीए -> पीसीए उत्पादन को सामान्य -> ​​प्रशिक्षण

उपरोक्त में से कौन सा सही है, या डेटा को प्रीप्रोसेस करने के लिए "मानकीकृत" तरीका है? "सामान्यीकृत" से मेरा मतलब मानकीकरण, रैखिक स्केलिंग या कुछ अन्य तकनीकें हैं।

उत्तर

23

आपको पीसीए करने से पहले डेटा को सामान्य बनाना चाहिए। उदाहरण के लिए, निम्नलिखित स्थिति पर विचार करें।

>> C = [1 0.5; 0.5 1]; 
>> A = chol(rho); 
>> X = randn(100,2) * A; 

मैं अब पीसीए प्रदर्शन करते हैं, मैं सही ढंग से लगता है कि प्रिंसिपल घटकों (वजन वेक्टर की पंक्तियों) समन्वय कुल्हाड़ियों के लिए एक कोण पर उन्मुख होते हैं: मैं एक डेटा एक ज्ञात सहसंबंध मैट्रिक्स C के साथ सेट X बनाने :

>> wts=pca(X) 
wts = 
    0.6659 0.7461 
    -0.7461 0.6659 

अब मैं डेटा 100 द्वारा निर्धारित की पहली फीचर पैमाने हैं, तो सहज हम सोचते हैं कि प्रिंसिपल घटकों परिवर्तन नहीं होना चाहिए:

>> Y = X; 
>> Y(:,1) = 100 * Y(:,1); 

हालांकि, अब हम पाते हैं कि प्रिंसिपल घटकों समन्वय कुल्हाड़ियों के साथ गठबंधन कर रहे हैं:

>> wts=pca(Y) 
wts = 
    1.0000 0.0056 
    -0.0056 1.0000 

इसके समाधान के लिए, वहाँ दो विकल्प हैं। सबसे पहले, मैं डेटा rescale सकता है:

>> Ynorm = bsxfun(@rdivide,Y,std(Y)) 

(अजीब bsxfun अंकन मैटलैब में वेक्टर-मैट्रिक्स गणित करने के लिए प्रयोग किया जाता है - सब मैं कर रहा हूँ मतलब घटाकर और प्रत्येक सुविधा के मानक विचलन से विभाजित है) ।

अब हम पीसीए से समझदार परिणाम प्राप्त:

>> wts = pca(Ynorm) 
wts = 
    -0.7125 -0.7016 
    0.7016 -0.7125 

वे थोड़ा मूल डेटा पर पीसीए को अलग कर रहे हैं क्योंकि अब हम गारंटी है कि हमारे सुविधाओं, इकाई मानक विचलन है जो नहीं था मूल रूप से मामला।

>> wts = pca(Y,'corr') 
wts = 
    0.7071 0.7071 
    -0.7071 0.7071 

वास्तव में यह पूरी तरह से मतलब घटाकर की तारीख मानकीकरण और फिर से विभाजित करने के बराबर है:

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

5

आपको पहले डेटा को सामान्यीकृत करने की आवश्यकता है। अन्यथा, पीसीए या अन्य तकनीकों जिनका उपयोग आयामों को कम करने के लिए किया जाता है, वे अलग-अलग परिणाम देंगे।

संबंधित मुद्दे