{count, plural, one {कोर्स} other {कोर्स}}

प्रिंसिपल कंपोनेंट एनालिसिस (PCA) का परिचय
मान लें कि आप रिटेल इंडस्ट्री में एक डेटा वैज्ञानिक हैं और एक डेटासेट से यह समझना चाहते हैं कि ग्राहक को खुश क्या करता है — जिसमें पाँच विशेषताएँ हैं: मासिक खर्च, आयु, लिंग, खरीद आवृत्ति और उत्पाद रेटिंग। बेहतर विश्लेषण और क्रियान्वयन योग्य निष्कर्ष निकालने के लिए हमें डेटा सेट को समझना होगा या कम से कम उसे विज़ुअलाइज़ करना होगा। मनुष्य तीन से अधिक आयामों को आसानी से नहीं देख पाते, इसलिए पाँच विशेषताओं (डाइमेंशंस) वाले ग्राहक डेटा का विज़ुअलाइज़ेशन सीधा नहीं है। यहीं प्रिंसिपल कंपोनेंट एनालिसिस (संक्षेप में PCA) काम आता है।
“लेकिन, प्रिंसिपल कंपोनेंट एनालिसिस है क्या?”
यह एक सांख्यिकीय विधि है जो उच्च-आयामी डेटा का विश्लेषण कर उससे सबसे महत्वपूर्ण जानकारी निकालने में मदद करती है। यह मूल डेटा को कम-आयामी स्पेस में बदलकर और आपस में अत्यधिक सहसंबद्ध वेरिएबल्स को साथ में समूहित करके किया जाता है। हमारे परिदृश्य में, PCA तीन विशेषताएँ जैसे मासिक खर्च, खरीद की आवृत्ति और उत्पाद रेटिंग चुन सकता है। इससे डेटा को देखना और समझना आसान हो जाएगा।
इस ट्यूटोरियल में, मैं प्रिंसिपल कंपोनेंट एनालिसिस की मुख्य अवधारणाएँ और R में corrr पैकेज का उपयोग करके वास्तविक जीवन की स्थितियों में इसे कैसे लागू करें, यह समझाऊँगा।
हमारे कोर्स के इस वीडियो में R में प्रिंसिपल कंपोनेंट एनालिसिस के बारे में और देखें व सीखें।
संक्षेप में
- PCA उच्च-आयामी डेटा को कम आयामों में घटाता है, जबकि अधिकतम वैरिएंस को संरक्षित रखता है
- PCA चलाने से पहले हमेशा
scale()से अपना डेटा सामान्यीकृत करें ताकि सभी वेरिएबल्स का योगदान समान रहे - R में विश्लेषण और विज़ुअलाइज़ेशन के लिए
FactoMineRऔरfactoextraपैकेजों के साथprincomp()याprcomp()का उपयोग करें - आमतौर पर पहले दो प्रिंसिपल कंपोनेंट्स 80–90% वैरिएंस समझाते हैं और विज़ुअलाइज़ेशन के लिए पर्याप्त होते हैं
- कितने कंपोनेंट रखने हैं, यह तय करने के लिए स्क्री प्लॉट का उपयोग करें, और वेरिएबल संबंधों की व्याख्या करने के लिए बाइप्लॉट्स का इस्तेमाल करें
पूर्व-आवश्यकताएँ
इस ट्यूटोरियल के साथ आगे बढ़ने के लिए आपके पास होना चाहिए:
- मूलभूत R प्रोग्रामिंग ज्ञान — यदि ताज़ा करने की ज़रूरत हो, तो Getting Started with the Tidyverse ट्यूटोरियल देखें
- R में डेटा फ़्रेम लोड करने और सबसेटिंग की जानकारी
- R 4.x या उससे नया संस्करण इंस्टॉल
- ये पैकेज:
corrr,ggcorrplot,FactoMineR,factoextra(इंस्टॉलेशन ट्यूटोरियल में कवर है)
PCA कैसे काम करता है? 5-स्टेप गाइड
भले ही हमारा फोकस PCA पर है, आइए उन पाँच प्रमुख प्रिंसिपल कंपोनेंट तकनीकों को याद रखें जिनका लक्ष्य बहुविविक (मल्टिवेरिएट) डेटा को सारांशित और विज़ुअलाइज़ करना है। अन्य तकनीकों के विपरीत, PCA केवल मात्रात्मक वेरिएबल्स के साथ काम करता है।

प्रिंसिपल कंपोनेंट विधियाँ
हम यहाँ जटिल गणितीय अवधारणा का विवरण नहीं देंगे। लेकिन निम्नलिखित पाँच चरण समझने से PCA की गणना का बेहतर अंदाज़ा मिलेगा।

प्रिंसिपल कंपोनेंट्स की गणना के पाँच मुख्य चरण
चरण 1 - डेटा सामान्यीकरण
परिचय में दिए उदाहरण के अनुसार, किसी एक ग्राहक के लिए मान लें हमारे पास निम्न जानकारी है।
- मासिक खर्च: $300
- आयु: 27
- रेटिंग: 4.5
यह जानकारी अलग-अलग स्केल पर है और इस तरह के डेटा पर PCA करने से पूर्वाग्रहित परिणाम मिल सकते हैं। यही वह जगह है जहाँ डेटा सामान्यीकरण उपयोगी है। यह सुनिश्चित करता है कि हर विशेषता का योगदान एक जैसा हो, ताकि कोई एक वेरिएबल दूसरों पर हावी न हो। प्रत्येक वेरिएबल के लिए, सामान्यीकरण उसके औसत को घटाकर और मानक विचलन से भाग देकर किया जाता है।
चरण 2 - कोवैरेअंस मैट्रिक्स
नाम से स्पष्ट है कि यह चरण सामान्यीकृत डेटा से कोवैरेअंस मैट्रिक्स निकालने का है। यह एक सममित मैट्रिक्स है और प्रत्येक तत्व (i, j) वेरिएबल i और j के बीच कोवैरेअंस को दर्शाता है।
चरण 3 - आइजनवेक्टर और आइजनवैल्यू
ज्यामितीय रूप से, आइजनवेक्टर एक दिशा दर्शाता है, जैसे “वर्टिकल” या “90 डिग्री”। दूसरी ओर, आइजनवैल्यू किसी दी गई दिशा में डेटा में उपस्थित वैरिएंस की मात्रा को दर्शाने वाली संख्या है। प्रत्येक आइजनवेक्टर का एक संबंधित आइजनवैल्यू होता है।
चरण 4 - प्रिंसिपल कंपोनेंट्स का चयन
डेटा में जितने वेरिएबल होते हैं, उतनी ही जोड़ी आइजनवेक्टर और आइजनवैल्यू की होती है। केवल मासिक खर्च, आयु और रेट के डेटा में तीन जोड़ियाँ होंगी। सभी जोड़ियाँ प्रासंगिक नहीं होतीं। इसलिए, सबसे बड़े आइजनवैल्यू वाला आइजनवेक्टर पहला प्रिंसिपल कंपोनेंट होता है। दूसरा प्रिंसिपल कंपोनेंट दूसरे सबसे बड़े आइजनवैल्यू वाला आइजनवेक्टर होता है, और इसी तरह आगे।
चरण 5 - नए आयामी स्पेस में डेटा रूपांतरण
इस चरण में मूल डेटा को प्रिंसिपल कंपोनेंट्स द्वारा परिभाषित नए सबस्पेस पर फिर से उन्मुख (re-orient) किया जाता है। यह पहले से निकाले आइजनवेक्टर से मूल डेटा को गुणा करके किया जाता है।
यह याद रखना महत्वपूर्ण है कि यह रूपांतरण मूल डेटा को बदलता नहीं है, बल्कि डेटा का बेहतर प्रतिनिधित्व देने के लिए एक नया दृष्टिकोण प्रदान करता है।
PCA के अनुप्रयोग
प्रिंसिपल कंपोनेंट एनालिसिस के हमारे रोज़मर्रा के जीवन में कई उपयोग हैं, जैसे वित्त, इमेज प्रोसेसिंग, हेल्थकेयर और सुरक्षा—पर सीमित नहीं।
वित्त
पिछली कीमतों से स्टॉक कीमतों का पूर्वानुमान लगाना वर्षों से शोध का विषय रहा है। PCA का उपयोग डायमेंशनलिटी रिडक्शन और डेटा विश्लेषण के लिए किया जा सकता है ताकि विशेषज्ञ उन प्रमुख कंपोनेंट्स को खोज सकें जो डेटा की अधिकांश विविधता को समझाते हैं। आप हमारे समर्पित कोर्स में R में डायमेंशनलिटी रिडक्शन के बारे में और जान सकते हैं।
इमेज प्रोसेसिंग
एक इमेज कई फीचर्स से बनी होती है। PCA मुख्यतः इमेज कंप्रेशन में लागू होता है ताकि आयाम घटाते हुए किसी तस्वीर के आवश्यक विवरण बनाए रखे जा सकें। इसके अलावा, PCA का उपयोग इमेज रिकग्निशन जैसे अधिक जटिल कार्यों में भी किया जा सकता है।
हेल्थकेयर
इमेज कंप्रेशन की ही तर्ज पर, PCA का उपयोग मैग्नेटिक रेज़ोनेंस इमेजिंग (MRI) स्कैन में इमेज की डायमेंशनलिटी घटाने के लिए किया जाता है ताकि बेहतर विज़ुअलाइज़ेशन और चिकित्सीय विश्लेषण हो सके। इसे उन चिकित्सा तकनीकों में भी एकीकृत किया जा सकता है जो, उदाहरण के लिए, इमेज स्कैन से किसी बीमारी की पहचान करती हैं।
सुरक्षा
फिंगरप्रिंट रिकग्निशन के लिए उपयोग होने वाली बायोमेट्रिक प्रणालियाँ, फिंगरप्रिंट की बनावट और अन्य जानकारी जैसे सबसे प्रासंगिक फीचर्स निकालने के लिए प्रिंसिपल कंपोनेंट एनालिसिस का उपयोग करने वाली तकनीकों को शामिल कर सकती हैं।
R में PCA का वास्तविक उदाहरण
अब जब आप PCA के बुनियादी सिद्धांत समझ गए हैं, तो आइए इसे व्यवहार में देखते हैं।
इस भाग में संबंधित पैकेज इंस्टॉल करने से लेकर डेटा लोड और तैयार करना, R में प्रिंसिपल कंपोनेंट एनालिसिस लागू करना, और परिणामों की व्याख्या करना—सभी चरण शामिल हैं।
सोर्स कोड DataLab पर उपलब्ध है।
पर्यावरण सेटअप
इस ट्यूटोरियल को सफलतापूर्वक करने के लिए आपको निम्न लाइब्रेरीज़ चाहिए होंगी, और हर एक को प्रभावी उपयोग के लिए दो मुख्य चरणों की ज़रूरत होगी:
- लाइब्रेरी इंस्टॉल करें ताकि उसकी सभी फ़ंक्शंस उपलब्ध हों।
- लोड करें ताकि आप उन फ़ंक्शंस का उपयोग कर सकें।
R में corrr पैकेज
यह सहसंबंध विश्लेषण के लिए R पैकेज है। यह मुख्यतः R डेटा फ़्रेम्स बनाने और हैंडल करने पर केंद्रित है। नीचे लाइब्रेरी इंस्टॉल और लोड करने के चरण दिए गए हैं।
install.packages("corrr")
library('corrr')R में ggcorrplot पैकेज
ggcorrplot पैकेज कई फ़ंक्शंस देता है, जिनमें ggplot2 पर आधारित फ़ंक्शंस भी हैं, जो कोरिलेशन मैट्रिक्स को विज़ुअलाइज़ करना आसान बनाते हैं। ऊपर की तरह, इसका इंस्टॉलेशन भी सीधा है।
install.packages("ggcorrplot")
library(ggcorrplot)R में FactoMineR पैकेज
मुख्यतः मल्टिवेरिएट एक्सप्लोरेटरी डेटा एनालिसिस के लिए उपयोग होता है; factoMineR पैकेज PCA मॉड्यूल तक पहुँच देता है जिससे प्रिंसिपल कंपोनेंट एनालिसिस की जा सके।
install.packages("FactoMineR")
library("FactoMineR")R में factoextra पैकेज
यह अंतिम पैकेज प्रिंसिपल कंपोनेंट एनालिसिस के आउटपुट्स को विज़ुअलाइज़ करने के लिए सभी प्रासंगिक फ़ंक्शंस देता है। इनमें स्क्री प्लॉट, बाइप्लॉट शामिल हैं—जिनमें से दो तकनीकों को आगे कवर किया गया है।
install.packages("factoextra")
library(factoextra)डेटा की जाँच-पड़ताल
डेटा लोड करने और आगे की जाँच से पहले, जिस डेटा पर आप काम करेंगे उससे संबंधित बुनियादी जानकारी समझ लेना अच्छा रहता है।
प्रोटीन डेटा
प्रोटीन डेटासेट 25 यूरोपीय देशों के नागरिकों द्वारा औसत प्रोटीन खपत का वास्तविक मानों वाला बहुविविक डेटासेट है।
प्रत्येक देश के लिए दस कॉलम हैं। पहले आठ विभिन्न प्रकार के प्रोटीन को दर्शाते हैं। आखिरी कॉलम प्रोटीन के औसत मानों के कुल मान से संबंधित है।
आइए डेटा का एक त्वरित अवलोकन करें।
पहले हम read.csv() फ़ंक्शन से डेटा लोड करते हैं, फिर str() चलाते हैं, जो नीचे दी गई इमेज जैसा आउटपुट देता है।
protein_data <- read.csv("protein.csv")
str(protein_data)हम देखते हैं कि डेटासेट में 25 ऑब्ज़र्वेशंस और 11 कॉलम हैं। Country कॉलम को छोड़कर हर वेरिएबल संख्यात्मक है, Country एक कैरेक्टर स्ट्रिंग है।

प्रोटीन डेटा का विवरण
नल मानों की जाँच
मिसिंग वैल्यूज़ की मौजूदगी PCA के परिणाम को पक्षपाती बना सकती है। इसलिए, उन मानों से निपटने के लिए उपयुक्त तरीका अपनाना अत्यधिक अनुशंसित है। हमारा Top Techniques to Handle Missing Values Every Data Scientist Should Know ट्यूटोरियल आपके लिए सही विकल्प चुनने में मदद कर सकता है।
colSums(is.na(protein_data))colSums() फ़ंक्शन को is.na() के साथ मिलाकर हर कॉलम में मिसिंग वैल्यूज़ की संख्या देता है। जैसा कि नीचे दिखता है, किसी भी कॉलम में मिसिंग वैल्यू नहीं है।

हर कॉलम में मिसिंग वैल्यूज़ की संख्या
डेटा का सामान्यीकरण
जैसा कि लेख में पहले बताया गया, PCA केवल संख्यात्मक मानों के साथ काम करता है। इसलिए, हमें Country कॉलम हटाना होगा। साथ ही, Total कॉलम विश्लेषण में प्रासंगिक नहीं है क्योंकि यह बाकी संख्यात्मक वेरिएबल्स का रैखिक संयोजन है।
नीचे दिया कोड केवल संख्यात्मक कॉलम्स वाला नया डेटा बनाता है।
numerical_data <- protein_data[,2:10]
head(numerical_data)
डेटा के सामान्यीकरण से पहले (केवल पहली पाँच कॉलम दिखाई गई हैं)
अब, scale() फ़ंक्शन से सामान्यीकरण लागू किया जा सकता है।
data_normalized <- scale(numerical_data)
head(data_normalized)
सामान्यीकृत डेटा (केवल पहली पाँच कॉलम दिखाई गई हैं)
कोरिलेशन मैट्रिक्स का विज़ुअलाइज़ेशन
PCA चलाने से पहले वेरिएबल्स के बीच सहसंबंधों को विज़ुअलाइज़ करना इस बात की पुष्टि करता है कि PCA प्रभावी होगा। उच्च पार-सहसंबंध इंगित करते हैं कि अनावश्यकता है, जिसे PCA संकुचित कर सकता है। मैं ऊपर इंस्टॉल किए गए corrr और ggcorrplot पैकेजों का उपयोग करूँगा।
corr_matrix <- cor(data_normalized)
ggcorrplot(corr_matrix,
hc.order = TRUE,
type = "lower",
lab = TRUE)
हीटमैप से पशु-आधारित प्रोटीन स्रोतों (रेड मीट, व्हाइट मीट, एग्स और मिल्क) के बीच प्रबल सकारात्मक सहसंबंध दिखते हैं, जो बताता है कि पहला प्रिंसिपल कंपोनेंट कुल वैरिएंस का लगभग 77% क्यों पकड़ता है। यही सहसंबंध संरचना है जिसका लाभ उठाने के लिए PCA डिज़ाइन किया गया है।
R में PCA फ़ंक्शंस पर टिप्पणी: यह ट्यूटोरियल princomp() का उपयोग करता है, जो कोवैरेअंस मैट्रिक्स पर स्पेक्ट्रल डीकंपोज़िशन लागू करता है। अधिकांश व्यावहारिक मामलों में prcomp() अधिक उपयुक्त विकल्प है — यह सिंगुलर वैल्यू डीकंपोज़िशन (SVD) का उपयोग करता है, जो बहुत से वेरिएबल्स वाले डेटासेट्स के लिए संख्यात्मक रूप से अधिक स्थिर है। मुख्य आउटपुट अंतर: princomp() लोडिंग्स को $loadings में रखता है, जबकि prcomp() $rotation का उपयोग करता है। अच्छे-कंडीशन्ड डेटा (जैसे यह प्रोटीन डेटासेट) पर दोनों समतुल्य परिणाम देते हैं।
PCA लागू करना
अब PCA विश्लेषण करने के लिए सब संसाधन उपलब्ध हैं। पहले princomp() PCA की गणना करता है, और summary() फ़ंक्शन परिणाम दिखाता है।
data.pca <- princomp(data_normalized)
summary(data.pca)
R PCA सारांश
पिछले स्क्रीनशॉट से हम देखते हैं कि नौ प्रिंसिपल कंपोनेंट्स बने हैं (Comp.1 से Comp.9), जो डेटा में वेरिएबल्स की संख्या के बराबर हैं।
प्रत्येक कंपोनेंट डेटा सेट की कुल वैरिएंस का एक प्रतिशत समझाता है। Cumulative Proportion सेक्शन में, पहला प्रिंसिपल कंपोनेंट कुल वैरिएंस का लगभग 77% समझाता है। इसका अर्थ है कि 9 वेरिएबल्स के सेट का लगभग दो-तिहाई हिस्सा केवल पहले प्रिंसिपल कंपोनेंट से दर्शाया जा सकता है। दूसरा 12.08% कुल वैरिएंस समझाता है।
Comp.1 और Comp.2 का समेकित अनुपात कुल वैरिएंस का करीब 89% समझाता है। यानी पहले दो प्रिंसिपल कंपोनेंट्स डेटा का सटीक प्रतिनिधित्व कर सकते हैं।
पहले दो कंपोनेंट्स मिल गए, लेकिन वे वास्तव में मतलब क्या रखते हैं?
इसका उत्तर प्रत्येक कॉलम से उनके संबंधों को, प्रत्येक प्रिंसिपल कंपोनेंट की लोडिंग्स के ज़रिये देखकर मिल सकता है।
data.pca$loadings[, 1:2]
पहले दो प्रिंसिपल कंपोनेंट्स की लोडिंग मैट्रिक्स
लोडिंग मैट्रिक्स दर्शाती है कि पहले प्रिंसिपल कंपोनेंट में रेड मीट, व्हाइट मीट, एग्स और मिल्क के लिए उच्च धनात्मक मान हैं। जबकि सीरियल्स, पल्सेज़, नट्स और ऑयलसीड्स, तथा फ्रूट्स और वेजिटेबल्स के मान अपेक्षाकृत ऋणात्मक हैं। यह संकेत देता है कि जिन देशों में पशु-आधारित प्रोटीन का सेवन अधिक है वे अधिशेष में हैं, जबकि कम सेवन वाले देश घाटे में हैं।
दूसरे प्रिंसिपल कंपोनेंट की बात करें तो इसमें फिश, स्टार्ची फूड्स और फ्रूट्स-एंड-वेजिटेबल्स के लिए उच्च ऋणात्मक मान हैं। यह दर्शाता है कि देशों के आहार पर उनके भौगोलिक स्थान का गहरा प्रभाव है—जैसे तटीय क्षेत्रों में मछली, और अंतर्देशीय क्षेत्रों में सब्ज़ियों व आलू पर आधारित आहार।
प्रिंसिपल कंपोनेंट्स का विज़ुअलाइज़ेशन
लोडिंग मैट्रिक्स के पिछले विश्लेषण ने पहले दो प्रिंसिपल कंपोनेंट्स और डेटा की विशेषताओं के बीच संबंधों की अच्छी समझ दी, पर यह दृश्य रूप से बहुत आकर्षक न लगे।
कुछ मानक विज़ुअलाइज़ेशन रणनीतियाँ उपयोगकर्ता को डेटा से अंतर्दृष्टि निकालने में मदद करती हैं, और यह खंड स्क्री प्लॉट से शुरू करते हुए उन तरीकों में से कुछ को कवर करता है।
स्क्री प्लॉट
सूची का पहला तरीका स्क्री प्लॉट है। इसका उपयोग हर प्रिंसिपल कंपोनेंट के महत्व को दर्शाने और यह तय करने के लिए किया जाता है कि कितने कंपोनेंट रखने चाहिए। स्क्री प्लॉट fviz_eig() फ़ंक्शन से बनाया जा सकता है।
fviz_eig(data.pca, addlabels = TRUE)
कंपोनेंट्स का स्क्री प्लॉट
यह प्लॉट सबसे बड़े से सबसे छोटे तक घटती वक्र में आइजनवैल्यूज़ दिखाता है। पहले दो कंपोनेंट्स को सबसे महत्वपूर्ण माना जा सकता है क्योंकि इनमें डेटा की कुल जानकारी का लगभग 89% समाहित है।
एट्रिब्यूट्स का बाइप्लॉट
बाइप्लॉट के साथ सैंपल्स के बीच समानताएँ और असमानताएँ देखी जा सकती हैं, और यह प्रत्येक एट्रिब्यूट का प्रत्येक प्रिंसिपल कंपोनेंट पर प्रभाव भी दिखाता है।
# वेरिएबल्स का ग्राफ
fviz_pca_var(data.pca, col.var = "black")
प्रिंसिपल कंपोनेंट्स के संदर्भ में वेरिएबल्स का बाइप्लॉट
पिछले प्लॉट से तीन मुख्य जानकारियाँ देखी जा सकती हैं।
- पहला, जो वेरिएबल्स एक साथ समूहित हैं वे एक-दूसरे के साथ धनात्मक सहसंबंधित हैं; उदाहरण के लिए व्हाइट/रेड मीट, मिल्क और एग्स में आपसी धनात्मक सहसंबंध है। यह परिणाम आश्चर्यजनक नहीं है क्योंकि पहले प्रिंसिपल कंपोनेंट के संदर्भ में इनके लोडिंग मैट्रिक्स मान सबसे अधिक हैं।
- दूसरा, वेरिएबल और मूल बिंदु (ओरिजिन) के बीच जितनी अधिक दूरी होगी, वह वेरिएबल उतना बेहतर प्रतिनिधित्वित होगा। बाइप्लॉट से एग्स, मिल्क और व्हाइट मीट का परिमाण रेड मीट से अधिक है, अतः ये रेड मीट की तुलना में बेहतर प्रतिनिधित्वित हैं।
- अंत में, जो वेरिएबल्स ऋणात्मक रूप से सहसंबंधित हैं वे बाइप्लॉट के ओरिजिन के विपरीत दिशाओं में दिखाई देते हैं।
प्रत्येक वेरिएबल का योगदान
तीसरे विज़ुअलाइज़ेशन का लक्ष्य यह निर्धारित करना है कि किसी दिए गए कंपोनेंट में प्रत्येक वेरिएबल कितना प्रस्तुत होता है। इस प्रतिनिधित्व की गुणवत्ता को Cos2 कहा जाता है और यह स्क्वेयर कोसाइन के अनुरूप है; इसे fviz_cos2() फ़ंक्शन से निकाला जाता है।
- कम मान का अर्थ है कि वेरिएबल उस कंपोनेंट द्वारा अच्छी तरह प्रस्तुत नहीं है।
- उच्च मान का अर्थ है कि वेरिएबल उस कंपोनेंट पर अच्छी तरह प्रस्तुत है।
fviz_cos2(data.pca, choice = "var", axes = 1:2)ऊपर दिया कोड पहले दो प्रिंसिपल कंपोनेंट्स के संदर्भ में प्रत्येक वेरिएबल के लिए स्क्वेयर कोसाइन मान की गणना करता है।
नीचे के चित्र से, cereals, pulse nut oilseeds, eggs और milk वे शीर्ष चार वेरिएबल्स हैं जिनके cos2 सबसे अधिक हैं, अतः वे PC1 और PC2 में सबसे अधिक योगदान देते हैं।

प्रिंसिपल कंपोनेंट्स में वेरिएबल्स का योगदान
बाइप्लॉट को cos2 के साथ संयोजित करना
आखिरी दो विज़ुअलाइज़ेशन—बाइप्लॉट और एट्रिब्यूट्स का महत्व—को मिलाकर एक ही बाइप्लॉट बनाया जा सकता है, जहाँ समान cos2 स्कोर वाले एट्रिब्यूट्स के रंग भी समान होंगे। यह fviz_pca_var फ़ंक्शन को इस प्रकार फाइन-ट्यून करके किया जाता है:
fviz_pca_var(data.pca, col.var = "cos2",
gradient.cols = c("black", "orange", "green"),
repel = TRUE)नीचे दिए बाइप्लॉट से:
- उच्च cos2 वाले एट्रिब्यूट्स हरे रंग में हैं: Cereals, pulses, oilseeds, eggs, और milk।
- मध्यम cos2 वाले एट्रिब्यूट्स नारंगी रंग में हैं: white meat, starchy food, fish, और red meat।
- अंततः, निम्न cos2 वाला एट्रिब्यूट काले रंग में है: fruits and vegetables,

बाइप्लॉट और cos2 स्कोर का संयोजन
कितने कंपोनेंट चुनें
दो व्यवहारिक नियम यह तय करने में मदद करते हैं कि कितने प्रिंसिपल कंपोनेंट्स रखने हैं:
- एल्बो नियम: स्क्री प्लॉट देखें और जहाँ वक्र तीखेपन से मुड़ता है उसे पहचानें। एल्बो के दाईं ओर के कंपोनेंट्स अतिरिक्त वैरिएंस बहुत कम जोड़ते हैं।
- वैरिएंस थ्रेशहोल्ड: कुल वैरिएंस के 80% से 90% तक समझाने के लिए पर्याप्त कंपोनेंट्स रखें। इस डेटासेट में पहले दो कंपोनेंट्स पहले से ही लगभग 89% समझाते हैं।
निष्कर्ष
इस ट्यूटोरियल में, मैंने प्रिंसिपल कंपोनेंट एनालिसिस क्या है और डेटा एनालिटिक्स में इसकी महत्ता को कवर किया। गणितीय नींव से लेकर हाथ-से-हाथ R कोड तक, हमने प्रोटीन डेटासेट पर एक संपूर्ण PCA वर्कफ़्लो देखा — सामान्यीकरण और princomp() लागू करने से लेकर स्क्री प्लॉट, बाइप्लॉट और cos2 विज़ुअलाइज़ेशन की व्याख्या तक — ताकि प्रिंसिपल कंपोनेंट्स और मूल वेरिएबल्स के बीच संबंध समझ सकें।
इन तकनीकों को लागू कर अपनी डायमेंशनलिटी घटाएँ, छिपी संरचना उजागर करें, और अपने डेटासेट्स के साथ क्लीनर मशीन लर्निंग पाइपलाइंस बनाएँ।
और आगे बढ़ने के लिए, ये संबंधित संसाधन देखें:
- Python में प्रिंसिपल कंपोनेंट एनालिसिस — यही तकनीक टैबुलर और इमेज डेटासेट्स पर
- UMAP को समझना — जटिल डेटा संरचनाओं के लिए एक नॉन-लीनियर डायमेंशनलिटी रिडक्शन विकल्प
- डायमेंशनलिटी रिडक्शन को समझना — PCA, t-SNE और UMAP सहित तकनीकों का व्यापक अवलोकन
- The Curse of Dimensionality — उच्च-आयामी डेटा क्यों चुनौतीपूर्ण है और PCA कैसे मदद करता है
- Introduction to R — हैंड्स-ऑन एक्सरसाइज़ के साथ अपनी R नींव मज़बूत करें
R में PCA से जुड़े सामान्य प्रश्न
क्या PCA फीचर एक्सट्रैक्शन है या सेलेक्शन?
PCA असुपरवाइज़्ड लीनियर ट्रांसफॉर्मेशन का उपयोग करके फीचर एक्सट्रैक्शन और डायमेंशनलिटी रिडक्शन करता है।
PCA विश्लेषण का उपयोग कब करना चाहिए?
जब वेरिएबल्स में मज़बूत सहसंबंध हों तब PCA का उपयोग करने की सिफारिश की जाती है। कमजोर सहसंबंध की स्थिति में, PCA डेटा को बेहतर तरीके से घटाने में विफल हो सकता है।
PCA की सीमाएँ क्या हैं?
पहला, PCA केवल संख्यात्मक वेरिएबल्स के साथ काम करता है। फिर, यह तब अच्छा काम नहीं करता जब वेरिएबल्स में मज़बूत सहसंबंध न हों। साथ ही, PCA फीचर्स के स्केल के प्रति संवेदनशील है और आउटलायर्स से परिणाम प्रभावित होते हैं।
PCA का मुख्य लाभ क्या है?
PCA में कई फायदे शामिल हैं, जिन तक सीमित नहीं:
- डेटा में शोर वाले वेरिएबल्स को हटाकर वेरिएबल्स की संख्या घटाना, जिससे ओवरफिटिंग भी कम हो सकती है।
- केवल प्रासंगिक फीचर्स पर ध्यान केंद्रित करके एल्गोरिदम के प्रदर्शन में सुधार।
- डेटा विज़ुअलाइज़ेशन में सुधार, जिससे डेटा को बेहतर समझा जा सके।
प्रिंसिपल कंपोनेंट एनालिसिस में PC1 और PC2 क्या हैं?
PC1 अक्ष वह पहली प्रिंसिपल दिशा होती है जिसके साथ डेटा में सबसे अधिक भिन्नता दिखाई देती है। PC2 अक्ष दूसरी सबसे महत्वपूर्ण दिशा के अनुरूप होता है। साथ ही, PC1 हमेशा PC2 के लम्बवत (ऑर्थोगोनल) होता है।
प्रिंसिपल कंपोनेंट एनालिसिस की क्या मान्यताएँ हैं?
प्रिंसिपल कंपोनेंट एनालिसिस निम्न मान्यताएँ करता है:
- वेरिएबल्स के बीच रैखिक संयोजन मौजूद है।
- सबसे अधिक वैरिएंस वाले प्रिंसिपल कंपोनेंट्स को अधिक महत्वपूर्ण माना जाता है; कम वैरिएंस वाले कंपोनेंट्स में डेटा का शोर माना जाता है।
- डेटा में अधिक आउटलायर्स प्रयोगात्मक त्रुटियों को दर्शाते हैं।
- PCA से प्राप्त डेटा सेट मूल डेटा का अच्छा प्रतिनिधित्व देता है।
R में PCA कैसे करें?
R में PCA करने के लिए, scale() से डेटा सामान्यीकृत करें, फिर या तो prcomp() (अनुशंसित — संख्यात्मक स्थिरता के लिए SVD का उपयोग करता है) या बेस R का princomp(), या FactoMineR पैकेज का PCA() उपयोग करें। विज़ुअलाइज़ेशन के लिए factoextra पैकेज से fviz_eig() द्वारा स्क्री प्लॉट और fviz_pca_var() द्वारा बाइप्लॉट बनाएं।
R में prcomp() और princomp() में क्या अंतर है?
prcomp() सिंगुलर वैल्यू डीकंपोज़िशन (SVD) का उपयोग करता है, जो संख्यात्मक रूप से अधिक स्थिर है और सामान्यतः पसंदीदा तरीका है। princomp() कोवैरेअंस मैट्रिक्स पर स्पेक्ट्रल डीकंपोज़िशन का उपयोग करता है। अच्छे-कंडीशन्ड डेटा पर दोनों समतुल्य परिणाम देते हैं, पर अधिकांश व्यावहारिक उपयोगों में prcomp() की सिफारिश की जाती है। मुख्य आउटपुट अंतर यह है कि prcomp() में लोडिंग्स $rotation में होती हैं और princomp() में $loadings में।
क्या R में मशीन लर्निंग प्रीप्रोसेसिंग के लिए PCA का उपयोग किया जा सकता है?
हाँ। मशीन लर्निंग पाइपलाइनों में PCA आमतौर पर प्रीप्रोसेसिंग स्टेप के रूप में उपयोग होता है ताकि इनपुट फीचर्स की संख्या घटाई जा सके, प्रेडिक्टर्स के बीच मल्टिकॉलीनियरिटी हटाई जा सके, और मॉडल ट्रेनिंग तेज़ की जा सके। R में, आप prcomp() से प्रिंसिपल कंपोनेंट स्कोर्स को $x के माध्यम से निकालकर डाउनस्ट्रीम मॉडलों के लिए इनपुट फीचर्स के रूप में उपयोग कर सकते हैं। caret और tidymodels पैकेज दोनों ही क्रमशः preProcess(method = "pca") और step_pca() के ज़रिये PCA को प्रीप्रोसेसिंग स्टेप के रूप में सपोर्ट करते हैं।
कितने प्रिंसिपल कंपोनेंट्स रखने चाहिए?
कितने कंपोनेंट रखने हैं, यह तय करने में तीन सामान्य तरीके मदद करते हैं:
- एल्बो नियम: स्क्री प्लॉट देखें और जहाँ वक्र मुड़ता है उसे पहचानें — एल्बो के दाईं ओर के कंपोनेंट्स घटती वैरिएंस का योगदान देते हैं।
- वैरिएंस थ्रेशहोल्ड: कुल वैरिएंस का 80–90% समझाने के लिए पर्याप्त कंपोनेंट्स रखें।
- काइज़र मानदंड: उन कंपोनेंट्स को रखें जिनका आइजनवैल्यू 1 से अधिक हो (बड़े डेटासेट्स के लिए अधिक भरोसेमंद)।
R में, प्रत्येक कंपोनेंट द्वारा समझाई गई वैरिएंस को विज़ुअलाइज़ करने के लिए factoextra पैकेज का fviz_eig() उपयोग करें।