Lewati ke konten utama

Eigendecomposition: Panduan Pemula untuk Faktorisasi Matriks

Jelajahi dasar-dasar eigendecomposition dan penerapannya dalam data science dan machine learning.
· 7 mnt Baca

Jelajahi bersama AI

Operasi pada matriks merupakan inti perhitungan dalam machine learning, analisis statistik, dan komputasi ilmiah. Misalnya, banyak operasi dalam statistik memerlukan inversi, diagonalisasi, dan pemangkatan matriks. Operasi semacam ini mahal secara komputasi, tetapi ada metode untuk memecah sebuah matriks menjadi sekumpulan matriks yang lebih kecil sehingga meningkatkan efisiensi komputasi. Operasi tersebut umumnya disebut faktorisasi matriks, dan bergantung pada sifat matriks-matriks kecil yang diperoleh, mereka memiliki nama khusus.

Eigendecomposition adalah salah satu metode faktorisasi matriks di mana nilai eigen dan vektor eigen menjadi elemen dari matriks-matriks tersebut. Memahami eigendecomposition matriks memberikan landasan matematika bagi para insinyur machine learning dan data science untuk memahami metode seperti reduksi dimensi dan aproksimasi matriks. Setelah Anda membaca artikel ini, ikuti kursus Linear Algebra for Data Science in R untuk mempelajari topik-topik matematika yang sangat sentral dan menjadi penopang data science.

Apa itu Eigendecomposition?

Eigendecomposition adalah metode faktorisasi matriks di mana sebuah matriks persegi difaktorkan (diuraikan) menjadi tiga matriks yang saling dikalikan. Faktorisasi ini disebut eigendecomposition karena entri dari matriks-matriks tersebut adalah nilai eigen dan vektor eigen dari matriks persegi asal. Secara matematis, sebuah matriks persegi A dapat difaktorkan menjadi tiga matriks sehingga:

Persamaan eigendecomposition

di mana P adalah matriks vektor eigen dari A, D adalah matriks diagonal yang elemen tak nolnya adalah nilai eigen terurut dari matriks tersebut, dan P-1 adalah invers dari matriks P.

Matematika di Balik Eigendecomposition

Saya akan menunjukkan melalui sebuah contoh operasi matematika untuk menurunkan eigendecomposition dari sebuah matriks persegi secara analitik. Matriks contoh kita adalah matriks persegi 2x2 A. Jika Anda kesulitan dengan teknik menggabungkan matriks, ikuti kursus Linear Algebra for Data Science in R agar Anda nyaman dengan cara kerja perkalian matriks. Contoh matriks persegi

Untuk melakukan eigendecomposition pada matriks A, kita perlu menurunkan nilai eigen dan vektor eigen yang bersesuaian dari matriks persegi ini. Kita dapat menggunakan polinomial karakteristik dari matriks untuk menghitung nilai eigen dan vektor eigen dari matriks ini. Jadi jika Anda belum familiar dengan bagian ini, bacalah terlebih dahulu Characteristic Equation: Everything You Need to Know for Data Science.

Sekarang, dari definisi polinomial karakteristik, kita peroleh:

Polinomial karakteristik

Polinomial karakteristik untuk matriks kita A kemudian adalah pA(λ) = λ2 - 18λ + 56. Kita dapat mencari akar dari polinomial ini dengan menyamakannya menjadi nol untuk menurunkan nilai eigen:

Jadi, nilai eigennya adalah λ1 = 14 dan λ1 = 4. Dari nilai eigen, kita dapat memperoleh vektor eigen sebuah matriks menggunakan (A - λI)X = 0 untuk setiap nilai eigen unik:

Untuk λ1 = 14 kita substitusikan 14 dan selesaikan sistem persamaan homogen:

Yang menghasilkan ruang eigen berdimensi satu (yakni satu vektor basis). Kita lakukan proses yang sama untuk λ1 = 4 dan memperoleh:

Sekarang setelah kita memperoleh nilai eigen dan vektor eigen dari matriks A, kita dapat menuliskan eigendecomposition dari A sebagai:

Eigendecomposition matriks A

Di sini kita menyusun P dengan mengumpulkan kedua vektor eigen (maksudnya menempatkannya berdampingan) dan kita meletakkan nilai eigen (urut menurun) pada diagonal matriks D.

Tentu saja, kita dapat melakukan eigendecomposition dengan sistem komputer dan bahasa pemrograman seperti Python atau R. Ingat bahwa Python dan R mungkin menghasilkan vektor eigen yang ternormalisasi (pada skala 0–1) (yakni basis ortonormal). Ini penting dicatat ketika seseorang mencoba merekonstruksi matriks A dari PDP-1 untuk tujuan verifikasi.

Aplikasi Eigendecomposition dalam Data Science

Eigendecomposition berperan penting dalam machine learning dan statistik. Dalam machine learning, eigendecomposition digunakan untuk metode reduksi dimensi, seperti PCA. Dalam PCA, kita mencari dimensi (arah) baru untuk koordinat berdimensi tinggi asal yang mempertahankan informasi maksimum. Eigendecomposition dari matriks mengungkap nilai eigen, dan vektor eigen dengan nilai eigen tertinggi mempertahankan informasi lebih besar, sehingga ditetapkan sebagai komponen utama dari data.

Melakukan Eigendecomposition di Python dan R

Setelah mempelajari cara melakukan eigendecomposition dengan pena dan kertas, kini kita dapat melakukannya menggunakan komputer dan bahasa pemrograman, seperti Python dan R, hanya dalam beberapa baris. Ingat bahwa vektor eigen yang dihitung di Python dan R ternormalisasi (dibandingkan dengan bahasa atau paket pemrograman simbolik, seperti SymPy di Python).

Eigendecomposition di Python

Untuk melakukan eigendecomposition di Python, modul NumPy perlu diinstal dan diimpor ke lingkungan. Kode berikut mengilustrasikan cara melakukan eigendecomposition di Python untuk matriks persegi tak simetris A:

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.]]

Eigendecomposition di R

Eigendecomposition di R dapat dilakukan menggunakan fungsi bawaan eigen() dan, karenanya, tidak perlu memasang dan mengimpor paket untuk eigendecomposition matriks kecil. Kode berikut di R melakukan eigendecomposition pada matriks A (R mengurutkan nilai eigen secara menurun, jadi urutan vektor eigen berbeda dari keluaran NumPy di Python):

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 vs. Singular Value Decomposition (SVD)

Eigendecomposition dan singular value decomposition (SVD) adalah dua metode faktorisasi matriks yang menonjol dan digunakan dalam machine learning dan komputasi ilmiah. Meskipun keduanya memfaktorkan sebuah matriks menjadi tiga matriks, ada beberapa perbedaan:

  • Eigendecomposition hanya berlaku untuk matriks persegi, sedangkan SVD dapat diterapkan pada matriks persegi maupun persegi panjang.
  • Dalam SVD, matriks hasil mencakup singular score, sedangkan pada eigendecomposition mencakup nilai eigen.
  • Karena SVD dapat mengakomodasi matriks tak persegi, penerapannya lebih luas dibandingkan eigendecomposition.

Kesimpulan

Dalam artikel singkat tentang aljabar linear ini, kita mempelajari eigendecomposition, cara melakukannya dengan pena dan kertas, serta cara menghitungnya menggunakan Python dan R. Kita juga mempelajari bagaimana eigendecomposition digunakan dalam algoritma machine learning seperti PCA.

Jika Anda sangat berminat menjadi analis data atau data scientist, saya sangat merekomendasikan mengikuti kursus Linear Algebra for Data Science in R agar Anda memiliki landasan yang kuat dalam matematika terapan dan pemrograman. Selain itu, daftarlah pada jalur karier lengkap Machine Learning Scientist in Python untuk mengeksplorasi supervised, unsupervised, dan deep learning.

Vahab Khademi

Penulis

Vahab Khademi

Latihan pendidikan saya berada di bidang matematika dan statistika. Saya memiliki pengalaman luas dalam pemodelan statistika dan penerapan machine learning. Selain itu, saya meneliti aspek matematika dari ML.

FAQ Eigendecomposition

Apa itu eigendecomposition?

Eigendecomposition adalah proses menguraikan sebuah matriks persegi menjadi nilai eigen dan vektor eigennya.

Kapan eigendecomposition dimungkinkan?

Eigendecomposition hanya mungkin untuk matriks persegi. Namun, tidak semua matriks persegi dapat diuraikan dengan cara ini. Sebuah matriks harus dapat didiagonalisasi, yang umumnya berarti ia perlu memiliki himpunan lengkap vektor eigen yang saling bebas linear. Untuk matriks yang tidak memenuhi kriteria ini (seperti matriks yang tidak dapat didiagonalisasi atau cacat), eigendecomposition tidak dimungkinkan dalam pengertian biasa.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026