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:
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 kursusLinear Algebra for Data Science in Ragar Anda nyaman dengan cara kerja perkalian matriks.
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 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:
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-1untuk 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)Didukung oleh
[4.14.][[-0.9701425-0.70710678][0.24253563-0.70710678]]Didukung oleh
# Reconstruct the original matrix A
D = np.diag(eigVals)
A_reconstructed = eigVecs @ D @ np.linalg.inv(eigVecs)print(A_reconstructed)Didukung oleh
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)Didukung oleh
[1]144[,1][,2][1,]-0.7071068-0.9701425[2,]-0.70710680.2425356Didukung oleh
A_Reconstructed <- eigVectors %*% diag(eigValues)%*%(solve(eigVectors))
print(A_Reconstructed)Didukung oleh
Show in New Window
[,1][,2][1,]68[2,]212Didukung oleh
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.
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.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
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:
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.
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 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:
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:
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):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:
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.