खोज…


प्रमुख घटक विश्लेषण के साथ आयाम कम करना

प्रिंसिपल कंपोनेंट एनालिसिस में फीचर्स के लीनियर कॉम्बिनेशन के सीक्वेंस देखने को मिलते हैं। पहला रैखिक संयोजन सुविधाओं के विचरण को अधिकतम करता है (एक इकाई बाधा के अधीन)। निम्न रैखिक संयोजनों में से प्रत्येक उप-कक्षीय में सुविधाओं के विचरण को अधिकतम करता है जो पिछले रैखिक संयोजनों द्वारा फैलाया जाता है।

एक सामान्य आयाम कटौती तकनीक केवल k पहले ऐसे रैखिक संयोजनों का उपयोग करना है। मान लीजिए कि विशेषताएँ n पंक्तियों और m स्तंभों की एक मैट्रिक्स X हैं। पहले k लीनियर कॉम्बिनेशन में m रो और k कॉलम का एक मैट्रिक्स form k बनता है। उत्पाद X β में n पंक्तियाँ और k कॉलम हैं। इस प्रकार, परिणामी मैट्रिक्स can k को मूल मैट्रिक्स X के उच्च-विचरण भागों को बनाए रखते हुए m से k आयामों में कमी माना जा सकता है।

scikit-learn , PCA को sklearn.decomposition.PCA साथ किया जाता है। उदाहरण के लिए, मान लें कि हम 100 X 7 मैट्रिक्स से शुरू करते हैं, जिसका निर्माण इसलिए किया गया है कि विचरण केवल पहले दो कॉलमों में निहित है (अंतिम 5 कॉलमों को स्केल करके):

import numpy as np
np.random.seed(123) # we'll set a random seed so that our results are reproducible
X = np.hstack((np.random.randn(100, 2) + (10, 10), 0.001 * np.random.randn(100, 5)))

चलो 2 आयामों में कमी करते हैं:

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
pca.fit(X)

अब परिणामों की जांच करते हैं। सबसे पहले, यहाँ रैखिक संयोजन हैं:

pca.components_
# array([[ -2.84271217e-01,  -9.58743893e-01,  -8.25412629e-05,
#           1.96237855e-05,  -1.25862328e-05,   8.27127496e-05,
#          -9.46906600e-05],
#        [ -9.58743890e-01,   2.84271223e-01,  -7.33055823e-05,
#          -1.23188872e-04,  -1.82458739e-05,   5.50383246e-05,
#           1.96503690e-05]])

ध्यान दें कि प्रत्येक वेक्टर में पहले दो घटक दूसरों की तुलना में बड़े परिमाण के कितने क्रम हैं, यह दर्शाता है कि पीसीए ने माना कि विचरण मुख्य रूप से पहले दो कॉलमों में निहित है।

इस PCA द्वारा बताए गए विचरण के अनुपात की जांच करने के लिए, हम pca.explained_variance_ratio_ जाँच कर सकते हैं:

pca.explained_variance_ratio_
# array([ 0.57039059,  0.42960728])


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow