क्या सुविधा चयन के लिए कर्नेल पीसीए का उपयोग करना संभव है?


9

क्या अव्यक्त प्रमुख घटक विश्लेषण (kPCA) का उपयोग करना संभव है अव्यक्त अर्थ इंडेक्सिंग (LSI) के लिए उसी तरह से जैसे PCA का उपयोग किया जाता है?

मैं prcompपीसीए फ़ंक्शन का उपयोग करके आर में एलएसआई प्रदर्शन करता हूं और पहले घटकों से उच्चतम लोडिंग के साथ सुविधाओं को निकालता हूं । उसके द्वारा मुझे घटक का सर्वोत्तम वर्णन करने वाली सुविधाएँ मिलती हैं।k

मैंने kpcaफ़ंक्शन ( kernlibपैकेज से) का उपयोग करने की कोशिश की, लेकिन यह नहीं देख सकता कि मुख्य घटक में सुविधाओं के भार का उपयोग कैसे किया जाए। कर्नेल विधियों का उपयोग करते समय क्या यह संभव है?


क्या आपने प्रिंसिपल फ़ंक्शन की कोशिश की है?
मारियाना सोफर

जवाबों:


6

मुझे लगता है कि आपके प्रश्न का उत्तर नकारात्मक है: यह संभव नहीं है।

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

लेकिन कर्नेल पीसीए में प्रत्येक प्रमुख घटक लक्ष्य स्थान में सुविधाओं का एक रैखिक संयोजन है , और उदाहरण के लिए गॉसियन कर्नेल (जिसका अक्सर उपयोग किया जाता है) लक्ष्य स्थान अनंत-आयामी है। तो "लोडिंग" की अवधारणा वास्तव में केपीसीए के लिए समझ में नहीं आती है, और वास्तव में, कर्नेल प्रिंसिपल घटकों को सीधे गणना की जाती है, प्रिंसिपल एक्सिस (जो मानक पीसीए के लिए आर द्वारा दिया जाता है prcomp$rotation) की गणना को दरकिनार करते हुए पूरी तरह से, धन्यवाद के रूप में जाना जाता है गिरी चाल । यहाँ देखें उदाहरण: क्या कर्नेल पीसीए रैखिक कर्नेल के साथ मानक पीसीए के बराबर है? अधिक जानकारी के लिए।

तो नहीं, यह संभव नहीं है। कम से कम कोई आसान तरीका नहीं है।


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

2

निम्न उदाहरण (kernlab संदर्भ मैनुअल से लिया गया) आपको दिखाता है कि कर्नेल PCA के विभिन्न घटकों तक कैसे पहुँचा जाए:

data(iris)
test <- sample(1:50,20)
kpc <- kpca(~.,data=iris[-test,-5],kernel="rbfdot",kpar=list(sigma=0.2),features=2)

pcv(kpc)        # returns the principal component vectors
eig(kpc)        # returns the eigenvalues
rotated(kpc)    # returns the data projected in the (kernel) pca space
kernelf(kpc)    # returns the kernel used when kpca was performed

क्या इससे आपके सवाल का जवाब मिलता है?


मैंने कोशिश की घुमाया (kpca) यह सोचकर कि यह prcomp $ रोटेशन के समान है; जो है (लिया गया फार्म R मदद (prcomp)): "रोटेशन: चर लोडिंग का मैट्रिक्स (यानी, एक मैट्रिक्स जिसका कॉलम आइजनवेक्टर होता है)।" हालाँकि ऐसा नहीं है। हालांकि यह सवाल भी बहुत सामान्य है क्योंकि मुझे यकीन नहीं है कि एलएसए / एलएसआई गैर-रेखीय आयामी कमी का उपयोग करना संभव है।
user3683

क्षमा करें, लेकिन मुझे यह प्रश्न याद आ रहा है; आपको क्यों लगता है कि एलएसए / एलएसआई में गैर-रैखिक आयामी कमी संभव नहीं है।
लालस

1
क्योंकि आयामों का कोई रैखिक संयोजन नहीं है, लेकिन एक जो कर्नेल फ़ंक्शन पर निर्भर करता है। क्या यह निर्धारित करना संभव है कि एक (गैर-रेखीय) प्रिंसिपल कंपोनेंट के लिए वजन का एक आयाम निर्धारित किया जाए?
user3683

2
(-1) यह एक उपयोगी कोड स्निपेट हो सकता है, लेकिन मुझे नहीं लगता कि यह मूल प्रश्न का उत्तर देता है।
अमीबा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.