मुख्य सामग्री पर जाएँ

Eigendecomposition: मैट्रिक्स फैक्टराइज़ेशन के लिए शुरुआती मार्गदर्शिका

Eigendecomposition की मूल बातें और इसका डेटा साइंस व मशीन लर्निंग में उपयोग जानें।
· 7 मि॰ पढ़ें

AI के साथ खोजें

मैट्रिसेज़ पर ऑपरेशन मशीन लर्निंग, सांख्यिकीय विश्लेषण और वैज्ञानिक कम्प्यूटिंग में गणनाओं का मूल होते हैं। उदाहरण के लिए, सांख्यिकी में कई प्रक्रियाएँ मैट्रिक्स का इनवर्शन, डायगोनलाइज़ेशन और एक्सपोनेंशिएशन मांगती हैं। ऐसी प्रक्रियाएँ संगणनात्मक रूप से महंगी होती हैं, लेकिन कुछ तरीके मैट्रिक्स को छोटे-छोटे मैट्रिसेज़ के समूह में तोड़कर दक्षता बढ़ाते हैं। इन्हें सामान्यतः मैट्रिक्स फैक्टराइज़ेशन कहा जाता है और प्राप्त छोटे मैट्रिसेज़ की प्रकृति के अनुसार इनके विशिष्ट नाम होते हैं। 

Eigendecomposition मैट्रिक्स फैक्टराइज़ेशन का एक तरीका है जिसमें eigenvalues और eigenvectors उन मैट्रिसेज़ के अवयव होते हैं। मैट्रिक्स eigendecomposition को समझना मशीन लर्निंग और डेटा साइंस इंजीनियरों को डाइमेंशन रिडक्शन और मैट्रिक्स एप्रॉक्सिमेशन जैसी विधियों को समझने के लिए गणितीय आधार देता है। इस लेख के बाद, Linear Algebra for Data Science in R कोर्स करें ताकि आप डेटा साइंस की नींव बनने वाले केंद्रीय गणितीय विषयों के बारे में जान सकें।

Eigendecomposition क्या है?

Eigendecomposition एक मैट्रिक्स फैक्टराइज़ेशन विधि है जिसमें किसी वर्गाकार मैट्रिक्स को तीन गुणात्मक मैट्रिसेज़ में फैक्टर (विघटित) किया जाता है। इसे eigendecomposition इसलिए कहते हैं क्योंकि इन मैट्रिसेज़ के एंट्रीज़ मूल वर्गाकार मैट्रिक्स के eigenvalues और eigenvectors होते हैं। गणितीय रूप से, एक वर्गाकार मैट्रिक्स A को तीन मैट्रिसेज़ में इस प्रकार फैक्टर किया जा सकता है:

Eigendecomposition equation

जहाँ P मैट्रिक्स A के eigenvectors का मैट्रिक्स है, D एक डायगोनल मैट्रिक्स है जिसके गैर-शून्य अवयव उस मैट्रिक्स के क्रमित eigenvalues हैं, और P-1 मैट्रिक्स P. का इनवर्स है।

Eigendecomposition के पीछे का गणित

मैं एक उदाहरण के माध्यम से दिखाऊँगा कि किसी वर्गाकार मैट्रिक्स की eigendecomposition को विश्लेषणात्मक रूप से कैसे निकाला जाता है। हमारा उदाहरण 2x2 का वर्गाकार मैट्रिक्स A है। यदि आपको मैट्रिसेज़ को मिलाने की तकनीकों में अटकाव हो, तो हमारा Linear Algebra for Data Science in R कोर्स अवश्य करें ताकि आप मैट्रिक्स गुणन कैसे काम करता है, इस पर सहज हों। Example square matrix

मैट्रिक्स A पर eigendecomposition करने के लिए, हमें इसके eigenvalues और उनके संबंधित eigenvectors निकालने होंगे। इसके लिए हम मैट्रिक्स के characteristic polynomial का उपयोग करके eigenvalues और eigenvectors निकाल सकते हैं। यदि आप इससे अपरिचित हैं, तो पहले Characteristic Equation: Everything You Need to Know for Data Science पढ़ें। 

अब, characteristic polynomial की परिभाषा से, हमें मिलता है:

Characteristic polynomial

हमारे मैट्रिक्स A का characteristic polynomial है pA(λ) = λ2 - 18λ + 56. इस बहुपद को शून्य के बराबर रखकर इसके मूल खोजे जा सकते हैं और eigenvalues निकाली जा सकती हैं: 

तो eigenvalues हैं λ1 = 14 और λ1 = 4. eigenvalues से, हम (A - λI)X = 0 का प्रयोग करके प्रत्येक अद्वितीय eigenvalue के लिए मैट्रिक्स के eigenvectors प्राप्त कर सकते हैं:

जहाँ λ1 = 14 के लिए हम 14 रखते हैं और समरूप समीकरणों की प्रणाली हल करते हैं:

जिससे एक-आयामी (अर्थात, एक आधार सदिश) eigen-space मिलता है। इसी प्रक्रिया को λ1 = 4 के लिए दोहराते हैं और प्राप्त करते हैं:

अब जबकि हमें मैट्रिक्स A के eigenvalues और eigenvectors मिल गए हैं, तो हम A की eigendecomposition यूँ लिख सकते हैं:

Eigendecomposition of matrix A

जिसमें हमने P को दोनों eigenvectors को साथ-साथ रखकर बनाया है और D के डायगोनल पर eigenvalues को (घटते क्रम में) रखा है। 

बेशक, हम कंप्यूटर और Python या R जैसी प्रोग्रामिंग भाषा से भी eigendecomposition कर सकते हैं। ध्यान रखें कि Python और R सामान्यतः normalized (0-1 पैमाने पर) eigenvectors देते हैं (अर्थात, orthonormal आधार)। यह बात तब महत्वपूर्ण है जब कोई सत्यापन के लिए PDP-1 से मैट्रिक्स A को पुनर्निर्मित करने की कोशिश की जाती है।

डेटा साइंस में Eigendecomposition के उपयोग

Eigendecomposition मशीन लर्निंग और सांख्यिकी में महत्वपूर्ण भूमिका निभाता है। मशीन लर्निंग में, इसका उपयोग डाइमेंशन रिडक्शन विधियों, जैसे PCA में होता है। PCA में, हम मूल उच्च-आयामी निर्देशांकों के लिए नई दिशाएँ तलाशते हैं जो अधिकतम जानकारी बनाए रखें। मैट्रिक्स की eigendecomposition eigenvalues को सामने लाती है, और जिन eigenvectors के eigenvalues सबसे अधिक होते हैं वे अधिक जानकारी रखते हैं, इसलिए उन्हें डेटा के principal components नामित किया जाता है।

Python और R में Eigendecomposition करना

कागज़-कलम से eigendecomposition करना सीखने के बाद, अब हम इसे कंप्यूटर और Python व R जैसी भाषाओं में कुछ पंक्तियों में कर सकते हैं। याद रखें कि Python और R में निकले eigenvectors सामान्यतः normalized होते हैं (जबकि SymPy जैसे प्रतीकात्मक प्रोग्रामिंग पैकेजों में वैसा न भी हो)।

Python में Eigendecomposition

Python में eigendecomposition करने के लिए NumPy मॉड्यूल को इंस्टॉल और इम्पोर्ट करना होता है। निम्नलिखित कोड वर्गाकार non-symmetric मैट्रिक्स A के लिए Python में eigendecomposition दिखाता है:

import numpy as np

A = np.array([[6,8], [2,12]]) 

eigVals, eigVecs = np.linalg.eig(A)

print(eigVals)
print(eigVecs)
[ 4. 14.]
[[-0.9701425  -0.70710678]
 [ 0.24253563 -0.70710678]]
 # Reconstruct the original matrix A
D = np.diag(eigVals)
A_reconstructed = eigVecs @ D @ np.linalg.inv(eigVecs)

print(A_reconstructed)
[[ 6.  8.]
 [ 2. 12.]]

R में Eigendecomposition

R में eigendecomposition अंतर्निहित फ़ंक्शन eigen() से किया जा सकता है, इसलिए छोटे मैट्रिसेज़ के लिए अलग पैकेज इंस्टॉल करने की आवश्यकता नहीं है। नीचे दिया गया R कोड मैट्रिक्स A पर eigendecomposition करता है (R eigenvalues को घटते क्रम में सजाता है, इसलिए eigenvectors का क्रम Python NumPy आउटपुट से अलग हो सकता है):

A <- matrix(c(6,8,2,12), 2,2, byrow = TRUE)

print(A)

eDecomp <- eigen(A)
eigValues <- eDecomp$values
eigVectors <- eDecomp$vectors

print(eigValues)
print(eigVectors)
[1] 14  4
           [,1]       [,2]
[1,] -0.7071068 -0.9701425
[2,] -0.7071068  0.2425356
A_Reconstructed <- eigVectors %*% diag(eigValues) %*% (solve(eigVectors))

print(A_Reconstructed)
Show in New Window
     [,1] [,2]
[1,]    6    8
[2,]    2   12

Eigendecomposition बनाम Singular Value Decomposition (SVD)

Eigendecomposition और Singular Value Decomposition (SVD) मशीन लर्निंग और वैज्ञानिक कम्प्यूटिंग में प्रयुक्त दो उल्लेखनीय मैट्रिक्स फैक्टराइज़ेशन विधियाँ हैं। यद्यपि दोनों विधियाँ किसी मैट्रिक्स को तीन मैट्रिसेज़ में फैक्टर करती हैं, फिर भी इनमें कुछ अंतर हैं:

  • Eigendecomposition केवल वर्गाकार मैट्रिसेज़ पर लागू होती है, जबकि SVD वर्गाकार और आयताकार दोनों मैट्रिसेज़ पर लागू हो सकती है।
  • SVD में प्राप्त मैट्रिसेज़ में singular scores शामिल होते हैं, जबकि eigendecomposition में eigenvalues शामिल होते हैं।
  • क्योंकि SVD गैर-वर्गाकार मैट्रिसेज़ को भी संभाल सकता है, इसकी उपयोगिता eigendecomposition की तुलना में व्यापक है।

निष्कर्ष

इस संक्षिप्त लेख में हमने रैखिक बीजगणित के एक विषय eigendecomposition के बारे में सीखा, इसे कागज़-कलम से कैसे करना है, और Python व R से इसे कैसे गणना करना है। हमने यह भी देखा कि PCA जैसे मशीन लर्निंग एल्गोरिद्म में eigendecomposition कैसे उपयोग होता है। 

यदि आप डेटा एनालिस्ट या डेटा साइंटिस्ट बनने में गहरी रुचि रखते हैं, तो मैं दृढ़ता से सलाह दूँगा कि आप हमारा Linear Algebra for Data Science in R कोर्स करें ताकि आपके पास अनुप्रयुक्त गणित और प्रोग्रामिंग की मजबूत नींव हो। साथ ही, हमारे पूर्ण Machine Learning Scientist in Python करियर ट्रैक में नामांकन करें और सुपरवाइज़्ड, अनसुपरवाइज़्ड, तथा डीप लर्निंग का अन्वेषण करें। 

Vahab Khademi

लेखक

Vahab Khademi

मेरी शैक्षणिक पृष्ठभूमि गणित और सांख्यिकी में रही है। मुझे सांख्यिकीय मॉडलिंग और मशीन लर्निंग अनुप्रयोगों में व्यापक अनुभव है। इसके अलावा, मैं ML के गणित पर शोध करता/करती हूँ।

Eigendecomposition FAQs

Eigendecomposition क्या है?

Eigendecomposition वह प्रक्रिया है जिसमें किसी वर्गाकार मैट्रिक्स को उसके eigenvalues और eigenvectors में विघटित किया जाता है।

Eigendecomposition कब संभव है?

Eigendecomposition केवल वर्गाकार मैट्रिसेज़ के लिए संभव है। हालांकि, हर वर्गाकार मैट्रिक्स को इस तरह विघटित नहीं किया जा सकता। किसी मैट्रिक्स का डायगोनलाइज़ेबल होना आवश्यक है, जिसका अर्थ सामान्यतः यह है कि उसके पास रैखिक रूप से स्वतंत्र eigenvectors का पूर्ण सेट होना चाहिए। जो मैट्रिसेज़ इस मानदंड को पूरा नहीं करतीं (जैसे गैर-डायगोनलाइज़ेबल या defective मैट्रिसेज़), उनके लिए सामान्य अर्थ में eigendecomposition संभव नहीं है।

विषय