
Pengarang: Matthew Macias
Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.
Belajar Bersama Saya: Aljabar Linier untuk Ilmu Data — Bagian 3: Vektor Eigen
Saya tahu apa yang Anda pikirkan, apa itu vektor eigen? Apakah itu bahkan kata yang sebenarnya?
Sumber: Foto oleh Ben White di Unsplash
Ya, mereka nyata. Mereka juga sangat membantu untuk operasi tertentu dalam Ilmu Data. Jika Anda membaca Bagian 2 dari seri ini, Anda akan tahu bahwa saya mendorong Anda untuk mulai memikirkan matriks sebagai sarana untuk melakukan transformasi linier. Cara umum untuk memikirkan hal ini adalah melalui contoh klasik Ax = b, di mana matriks A mengubah vektor input x menjadi vektor output b.
Jadi, apa itu vektor Eigen?
Vektor eigen mungkin paling baik dijelaskan melalui sebuah contoh. Mari kita mulai dengan matriks A dan vektor x:
Sumber: gambar yang dihasilkan oleh penulis
Bagi Anda yang telah membaca bagian sebelumnya dari seri ini, produk titik di atas akan menjadi sepotong kue! Matriks A mengubah vektor x menjadi vektor baru b yang bernilai [4, 3] . Mari kita lihat transformasi ini secara visual.
Sumber: gambar yang dihasilkan oleh penulis
Kita dapat menggambarkan transformasi ini sebagai rotasi dan regangan dari vektor asli x. Kita bisa melangkah lebih jauh dan memvisualisasikan bidang vektor yang diwakili oleh lingkaran. Bayangkan bahwa setiap titik yang terletak pada lingkaran ini adalah ujung vektor yang berasal dari titik asal. Sekarang kita dapat melihat bagaimana semua vektor yang berbeda akan berubah sebagai hasil dari matriks A.
Sumber: gambar yang dihasilkan oleh penulis
Seperti yang Anda lihat, lingkaran asli akan diputar dan direntangkan sedikit. Jika kita membayangkan titik-titik di sepanjang lingkaran sebagai vektor, maka hal yang sama akan dikatakan untuk mereka. Tetapi bagaimana jika ada vektor yang tidak diputar selama transformasi? Bagaimana kita menemukannya? Dan lebih baik lagi, mengapa kita harus peduli?
Nah, itulah eigenvector, sebuah vektor yang tidak diputar selama transformasi linier, hanya diskalakan. Secara formal kita dapat menyatakannya sebagai:
Sumber: gambar yang dihasilkan oleh penulis
Dimana (lambda) disebut sebagai nilai eigen. Ini hanya skalar yang memberi tahu kita seberapa banyak vektor eigen dipersingkat atau diperpanjang setelah transformasi linier. Sebuah matriks mungkin memiliki beberapa nilai eigen atau tidak sama sekali (untuk matriks yang memiliki vektor eigen, untuk memulainya, matriks tersebut harus berupa matriks persegi), tetapi masing-masing vektor eigen tersebut memiliki nilai eigen yang sesuai yang memberi tahu kita tentang penskalaan.
Melanjutkan contoh kita di atas, mari kita lihat seperti apa vektor eigen dan nilai eigen matriks A.
Sumber: gambar yang dihasilkan oleh penulis
Kita dapat melihat bahwa sebelum dan sesudah transformasi, vektor eigen tidak berotasi dari sumbu aslinya. Vektor eigen ini juga memiliki nilai eigen 11, yang secara intuitif masuk akal karena vektor setelah transformasi terlihat sekitar 11 kali lebih panjang.
Menghitung Eigenvectors
Jika semua yang ingin Anda ketahui adalah kode Python apa yang harus dieksekusi untuk mengembalikan nilai eigen dan vektor eigen, ini dia:
eig_vals, eig_vecs = np.linalg.eig(A)
Untuk yang lebih penasaran di antara Anda, kami akan membahas bagaimana Anda bisa mendapatkan nilai eigen dan vektor secara manual. Saya akan mengawali matematika dengan mengatakan Anda mungkin tidak akan pernah melakukan ini karena alasan praktis, tetapi sangat bagus untuk mendapatkan pemahaman tentang apa yang terjadi di bawah kap fungsi NumPy.
Mari kembali ke bentuk matematika asli dari vektor eigen dan nilai eigen.
Sumber: gambar yang dihasilkan oleh penulis
Hal pertama yang akan kita lakukan adalah menambahkan matriks identitas ke dalam campuran. Matriks ini tidak mengubah apa pun (matriks ini setara dengan mengalikan angka dengan 1), tetapi mereka menyederhanakan perhitungan. Persamaan baru kita menjadi:
Sumber: gambar yang dihasilkan oleh penulis
Mari kita bawa semuanya ke satu sisi karena memiliki hal-hal yang sama dengan nol membuatnya menarik! Kami juga akan memfaktorkan x karena itu akan menjadi kesamaan.
Sumber: gambar yang dihasilkan oleh penulis
Untuk saat ini, kita hanya akan menerima begitu saja bahwa suku-suku di dalam kurung menghasilkan matriks yang tidak dapat dibalik. Pada titik ini, sepertinya tidak ada banyak pilihan lain. Namun, fakta bahwa matriks yang dihasilkan tidak dapat dibalik memberi tahu kita sesuatu yang cukup penting. Determinan suku-suku di dalam kurung juga harus sama dengan 0. Yaitu:
Sumber: gambar yang dihasilkan oleh penulis
Selanjutnya, kita akan menghitung matriks di dalam kurung menggunakan matriks A asli kita:
Sumber: gambar yang dihasilkan oleh penulis
Setelah kita memiliki matriks itu, kita bisa mulai memecahkan determinannya. Untuk matriks 2×2 yang relatif sederhana, saya tidak akan merekomendasikan mencoba ini secara manual untuk matriks yang lebih besar. Dalam hal ini, itu hanya (kiri atas * kanan bawah) — (kiri bawah * kanan atas). Ini menghasilkan persamaan yang dapat kita faktorkan untuk menemukan nilai eigen kita:
Sumber: gambar yang dihasilkan oleh penulis
Sejauh ini, semuanya terlihat bagus, kami mendapatkan nilai eigen yang sama seperti yang kami lakukan dengan Python. Tetapi pekerjaan belum selesai, kita perlu menggunakan nilai eigen kita untuk menghitung vektor eigen kita. Dengan menggunakan apa yang telah kita definisikan sejauh ini, mari kita isi persamaan standar untuk vektor eigen:
Sumber: gambar yang dihasilkan oleh penulis
Kami sebenarnya memiliki nilai eigen sekarang yang dapat kami gunakan sebagai input ke dalam persamaan di atas. Menggunakan 11, kita akan mendapatkan sistem persamaan seperti di bawah ini:
Sumber: gambar yang dihasilkan oleh penulis
Ini adalah persamaan yang cukup mudah, dan keduanya diselesaikan dengan:
Sumber: gambar yang dihasilkan oleh penulis
Jadi setiap set poin yang memenuhi kriteria di atas akan terletak pada vektor eigen kita. Itu dia, Anda baru saja menghitung nilai eigen dan vektor eigen untuk matriks A. Tapi, masih ada satu pertanyaan besar yang membayangi…
Siapa peduli?
Sumber: Foto oleh Matthew Henry di Unsplash
Apa gunanya semua ini? Saya mendengar Anda berkata. Percaya atau tidak, ini memang ada tempatnya di Ilmu Data. Kami akan membahas secara singkat satu aplikasi utama nilai eigen dan vektor eigen.
Analisis Komponen Utama (PCA)
Anda mungkin atau mungkin tidak pernah mendengar tentang analisis komponen utama. Ini mungkin teknik pengurangan dimensi yang paling banyak digunakan dalam Ilmu Data. Ini berfungsi untuk mengurangi jumlah data yang diperlukan untuk mewakili suatu sistem sementara juga mempertahankan informasi sebanyak mungkin. PCA secara efektif mengambil vektor eigen dari matriks kovarians dan mengembalikan apa yang dikenal sebagai komponen utama. Kami akan membahas PCA lebih mendalam di bagian selanjutnya dari seri ini, tetapi untuk saat ini, ketahuilah betapa pentingnya itu!
Kesimpulan
Mudah-mudahan, Anda menikmati bagian lain dari seri aljabar linier, pastikan untuk memeriksa Bagian 1 dan Bagian 2 jika ada sesuatu yang Anda tidak yakin tentang artikel ini. Kami telah meletakkan dasar yang cukup bagus hingga saat ini, dan kami akan mulai masuk ke aplikasi aljabar linier yang lebih praktis, seperti PCA dan dekomposisi nilai singular (SVD).
Pelajari bersama saya: Aljabar Linier untuk Ilmu Data — Bagian 3: Vektor Eigen awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI