Nama = Izza Syahri Muharram || Nim = 220605110073 || Mata kuliah = Linear Algebra || Dosen Pengampu = Prof. Dr. SUHARTONO, M.Kom || Teknik Informatika || Universitas Islam Negeri Malang

Untuk membuat titik data untuk plot yang ditunjukkan pada Gambar 2.3, kita perlu melakukannya menghitung vektor eigen dari matriks sigma, standar deviasi untuk distribusi normal bivariat. Vektor eigen suatu matriks akan dibahas pada bab selanjutnya. Transformasi ini menggunakan vektor eigen terkait untuk analisis komponen utama, salah satu yang paling populer tanpa pengawasan model pembelajaran dalam ilmu data. Untuk aplikasi praktis ini, tanpa pergi secara rinci, kami menunjukkan bagaimana mentransformasikan ke titik data yang ditunjukkan pada Gambar 2.3. Kami akan menjelaskan lebih detail ketika kami membahas vektor eigen dan eigennya nilai-nilai di bab selanjutnya. Untuk contoh kerja, kami menghasilkan poin data dari bivariat distribusi normal. Distribusi normal bivariat didefinisikan dengan rata-rata dan standar deviasi, tidak seperti distribusi normal univariat, bagaimanapun, artinya didefinisikan oleh vektor dua dimensi dan standar deviasinya didefinisikan dengan matriks 2 × 2. Kami menggunakan paket R mvtnorm [18] dan kami menggunakan matlib paket untuk operasi matriks. Pertama kita upload semua paket yang dibutuhkan

library(mvtnorm)
library(ggplot2)
library(matlib)
## Standard deviation
sigma <- matrix(c(4,2,2,3), ncol = 2, nrow = 2)
## Mean
mu <- c(1, 2)
n <- 1000

Fungsi set.seed() menyetel seed, yang merupakan nilai untuk mulai dihasilkan angka acak. Fungsi set.seed() me-reset nilai acak angka dan fungsi acak dari nilai yang diperoleh sebelumnya. Kami mengatur benih untuk mereproduksi hasil yang sama. Jika kita menetapkan benih yang sama, maka kita dapat mereproduksi angka acak yang sama:

set.seed(123)
x <- rmvnorm(n = n, mean = mu, sigma = sigma)
d <- data.frame(x)
p2 <- ggplot(d, aes(x = X1, y = X2)) +
geom_point(alpha = .5) +
geom_density_2d()
p2

y <- x - mu
E <- eigen(sigma)
E$vectors
##            [,1]       [,2]
## [1,] -0.7882054  0.6154122
## [2,] -0.6154122 -0.7882054
y <- y %*% t(inv(E$vectors))
dd <- data.frame(y)

Vektor eigen dari matriks sigma disimpan dalam E$vectors dalam bentuk dari sebuah matriks. Setiap vektor kolom adalah vektor eigen. Kemudian kita mengambil perkalian matriks, kumpulan data disimpan sebagai 10.000 × 2 matriks dikalikan dengan matriks 2 × 2, transpos dari invers dari matriks E. Invers suatu matriks akan dibahas pada bagian selanjutnya

p3 <- ggplot(dd, aes(x = X1, y = X2)) +
geom_point(alpha = .5) +
geom_density_2d()
p3

Dalam python, kami menggunakan paket numpy [19] untuk operasi matriks. Untuk matriks Selain itu, kita dapat menggunakan + operasi. Pertama, kita perlu memanggil paketnya: import numpy as np namun karena itu dalam python maka dapat ditulis seperti dibawah jika mengoperasikan dalam bahasa R.

library(Matrix)

# membuat matriks A
A <- Matrix(c(1, 2, 3, 4), nrow = 2, byrow = TRUE)
# membuat matriks B
B <- Matrix(c(5, 6, 7, 8), nrow = 2, byrow = TRUE)

# menampilkan matriks A
A
## 2 x 2 Matrix of class "dgeMatrix"
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
# menampilkan matriks B
B
## 2 x 2 Matrix of class "dgeMatrix"
##      [,1] [,2]
## [1,]    5    6
## [2,]    7    8
# menjumlahkan matriks A dan B
A + B
## 2 x 2 Matrix of class "dgeMatrix"
##      [,1] [,2]
## [1,]    6    8
## [2,]   10   12

daftar pustaka 1. Yoshida.Ruriko.2021.Linear Algebra and Its Applications With R.London. CRC Press.