Nama :Yazid Shidqi Rabbani
NIM :220605110064
Kelas :C
Mata Kuliah : Linear Algebra
Dosen Pengampuh: Prof.Dr.Suhartono,M.Kom
Jurusan : Teknik Informatika
Universitas : UIN Maulana Malik Ibrahim Malang
Untuk membuat titik-titik data untuk plot yang ditunjukkan pada Gambar 2.3, kita perlu menghitung vektor eigen dari matriks sigma, deviasi standar untuk distribusi normal bivariat. Vektoreigen dari sebuah matriks akan dibahasakan dibahas dalam bab selanjutnya. Transformasi menggunakan vektor eigen ini terkait dengan analisis komponen utama, salah satu model pembelajaran tanpa pengawasan yang paling populer salah satu model pembelajaran yang paling populer dalam ilmu data. Untuk aplikasi praktis ini, tanpa menjelaskan secara untuk aplikasi praktis ini, tanpa menjelaskan secara detail, kami menunjukkan bagaimana melakukan transformasi ke titik-titik data yang ditunjukkan pada Gambar 2.3.Kami akan menjelaskan secara lebih rinci ketika kami membahas vektor eigen dan nilai eigennya di bab selanjutnya. Nilai eigennya di bab selanjutnya. Untuk contoh kerja, kami menghasilkan titik-titik data dari distribusi bivariat bivariat distribusi normal. Distribusi normal bivariat didefinisikan oleh mean dan standar deviasi, tidak seperti distribusi normal univariat, bagaimanapun, rata-rata didefinisikan oleh vektor dua dimensi dan deviasi standarnya didefinisikan oleh matriks 2 × 2. Kami menggunakan paket R mvtnorm [18] dan kami menggunakan paket matlib untuk operasi-operasi matriks. Pertama, kami mengunggah semua paket yang dibutuhkan:
library(mvtnorm)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
library(matlib)
## Warning: package 'matlib' was built under R version 4.2.3
Paket ggplot2 [46] adalah untuk membuat plot. Kemudian, kita mendefinisikan mean dan standar deviasi sebagai:
## Standard deviation
sigma <- matrix(c(4,2,2,3), ncol = 2, nrow = 2)
## Mean
mu <- c(1, 2)
Untuk data ini, kami memiliki ukuran sampel n = 10.000
n <- 10000
Fungsi set.seed() menetapkan seed, yang merupakan nilai untuk mulai menghasilkan bilangan acak. Fungsi set.seed() mengatur ulang nilai dari bilangan acak angka acak dan fungsi acak dari nilai yang telah diperoleh sebelumnya. Kita menetapkan seed untuk mereproduksi hasil yang sama. Jika kita menetapkan seed 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
stored as a variable x by -mu = [−1, −2]since the center of the distribution is at mu = [1, 2].
y <- x - mu
We store these new data points as a variable y.Then we compute the eigen vectors of sigma.
E <- eigen(sigma)
E$vectors
## [,1] [,2]
## [1,] -0.7882054 0.6154122
## [2,] -0.6154122 -0.7882054
Vektor eigen dari matriks sigma disimpan dalam vektor E$ dalam bentukdari sebuah matriks. Setiap vektor kolom adalah vektor eigen.Kemudian kita ambil perkalian matriks, kumpulan data yang disimpan sebagai matriks 10000 × 2dikalikan dengan matriks 2 × 2, transpose dari kebalikan darimatriks E. Kebalikan dari sebuah matriks akan dibahas di bagian selanjutnya.
y <- y %*% t(inv(E$vectors))
Seperti yang telah kita lakukan untuk kumpulan data x, kita menetapkan data ini sebagai “bingkai data” menggunakan fungsi fungsi data.frame():
dd <- data.frame(y)
p3 <- ggplot(dd, aes(x = X1, y = X2)) +
geom_point(alpha = .5) +
geom_density_2d()
p3
Sumber Referensi: Ruriko Yoshida - Linear Algebra and its Application with R