Ruang Vektor dan Subruang Vektor

Skalar perkalian adalah operasi yang mengalikan sebuah skalar (bilangan) dengan sebuah elemen vektor dari himpunan V. Dalam konteks ini, operasi ini ditulis sebagai c • v, di mana c adalah skalar dan v adalah elemen dari himpunan V.

Sebuah ruang vektor adalah dasar dalam banyak bidang matematika dan merupakan himpunan yang terdefinisi dengan baik dan memiliki beberapa sifat yang bagus. Sebuah ruang vektor tampaknya sangat intuitif, namun kita harus sangat berhati-hati dengan definisinya.

Contoh:

Ruang vektor V didefinisikan dalam [Contoh 90]. Anggap V sebagai himpunan vektor berdimensi 3 dengan koordinat real (x, y, z), yaitu vektor real 3-dimensi.

Contoh 90: Anggap V = R^3 sebagai himpunan vektor 3-dimensi dengan koordinat real (x, y, z).

Sekarang, kita akan memeriksa semua properti ruang vektor untuk memverifikasi bahwa V adalah sebuah ruang vektor.

Selanjutnya, kita definisikan subruang W sebagai himpunan vektor (x, y, z) di V yang memenuhi z = 2 - x - 3y. Dengan kata lain, W terdiri dari vektor-vektor di V yang memenuhi persamaan tersebut.

Untuk memvisualisasikan W dari Contoh98 dalam ruang 3 dimensi, kita dapat menggunakan paket rgl dalam R [2].

library(rgl)

Kemudian kita menginisialisasi plot

# Buat beberapa data palsu.
dat <-replicate(2,1:3)

# Inisialisasi adegan, tanpa data yang digambarkan.
plot3d(dat, type='n',xlim=c(-1,8),ylim=c(-1,8),
zlim =c(-10,20),xlab='',ylab='',zlab='')

Kemudian kita mendefinisikan bidang dengan persamaan linear dan menentukan asal (origin):

Ini akan memplot bidang linear dalam ruang tiga dimensi dan menghasilkan plot yang ditampilkan seperti berikut.

# Definisikan bidang linear.
planes3d(2, 3,-1,0,col='red',alpha=0.6)

# Definisikan titik asal.
points3d(x=0, y=0,z=0)

Jika kita ingin melihat plot dari sudut yang berbeda, kita dapat menahan tombol panah dan menggesernya.

Berikut adalah gambarnya:

library(magick)
## Linking to ImageMagick 6.9.12.3
## Enabled features: cairo, freetype, fftw, ghostscript, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fontconfig, x11
# Reading from a local computer.
inp_img <- image_read("gambar.png")
plot(inp_img)

APLIKASI PRAKTIS

Untuk mengurangi dimensi data “Auto” dari paket ISLR, kita akan menggunakan fungsi prcomp() untuk menerapkan PCA pada dataset tersebut. Untuk fungsi prcomp(), untuk melakukan penskalaan data, kita tidak perlu menggunakan fungsi scale. Cukup tambahkan opsi “scale = TRUE”.

# Memuat paket ISLR
library(ISLR)
# Memuat data Auto
data(Auto)

Berikutnya, kita menggunakan fungsi prcomp() untuk menerapkan Analisis Komponen Utama (PCA) pada dataset “Auto”.

# Mengaplikasikan PCA dengan prcomp()
pca_result <- prcomp(Auto[, -9], scale = TRUE)
pca_result
## Standard deviations (1, .., p=8):
## [1] 2.3185927 0.9714233 0.9009127 0.6972488 0.4275822 0.3381153 0.2314019
## [8] 0.1788003
## 
## Rotation (n x k) = (8 x 8):
##                     PC1         PC2           PC3         PC4         PC5
## mpg           0.3858624  0.07663269 -0.2922857863  0.09998251 -0.74036644
## cylinders    -0.4023885  0.13842878 -0.0722393515 -0.21603551 -0.48261485
## displacement -0.4164443  0.12632499 -0.0742362247 -0.13581398 -0.30331627
## horsepower   -0.4018359 -0.11148007 -0.2360557124 -0.11971643  0.08426839
## weight       -0.4015758  0.21102000  0.0008939861 -0.32246785  0.13127292
## acceleration  0.2647309  0.41690206  0.6394351361 -0.49280794 -0.09773197
## year          0.2138678  0.69046320 -0.5871891991 -0.10601968  0.30134385
## origin        0.2778682 -0.50150064 -0.3073238207 -0.74328281  0.04739508
##                       PC6         PC7         PC8
## mpg           0.387351653 -0.19588516 -0.11513210
## cylinders    -0.530925481  0.27878265 -0.41774679
## displacement -0.006997047 -0.08422855  0.82916553
## horsepower    0.666709602  0.53504996 -0.13477548
## weight        0.235859612 -0.72202073 -0.30991105
## acceleration  0.202933431  0.22891382  0.03518826
## year         -0.110025917  0.12501506  0.05428840
## origin       -0.120866629 -0.03452660  0.07951102
# Melihat hasil komponen utama
summary(pca_result)
## Importance of components:
##                          PC1    PC2    PC3     PC4     PC5     PC6     PC7
## Standard deviation     2.319 0.9714 0.9009 0.69725 0.42758 0.33812 0.23140
## Proportion of Variance 0.672 0.1180 0.1015 0.06077 0.02285 0.01429 0.00669
## Cumulative Proportion  0.672 0.7899 0.8914 0.95217 0.97502 0.98931 0.99600
##                           PC8
## Standard deviation     0.1788
## Proportion of Variance 0.0040
## Cumulative Proportion  1.0000

Ini akan menampilkan plot yang ditunjukkan dalam Gambar 4.3. Ada beberapa aturan praktis untuk memilih jumlah komponen utama yang akan dipertahankan dalam analisis semacam ini:

Pilih jumlah komponen yang menjelaskan 85% atau lebih variasi. Untuk melakukannya, kita akan menggunakan fungsi cumsum(). Fungsi ini menghitung jumlah kumulatif.

# Menghapus kolom non-numerik
Auto_numeric <- Auto[, sapply(Auto, is.numeric)]

# Melakukan PCA dengan prcomp
pc <- prcomp(Auto_numeric, scale = TRUE)
# Plot hasil PCA
plot(pc)

Gambar 4.3 - Gambar yang ditunjukkan di sini adalah histogram untuk varian dari setiap komponen.

Kemudian dengan perintah di bawah ini akan menampilkan plot yang ditunjukkan dalam Gambar 4.4. Dari plot ini, terlihat bahwa

plot(cumsum(pc$sdev^2/sum(pc$sdev^2)))

Gambar 4.4 Kumulatif varian.

Kita membutuhkan komponen utama dari urutan pertama hingga urutan keempat.

Dengan kriteria proporsi kumulatif varian yang dijelaskan, kita akan menyimpan sebanyak yang diperlukan untuk menjelaskan lebih dari 80% dari total varian. Dengan demikian, dengan melihat plot, kita akan menyimpan 2 variabel dari dataset.

Sekarang kita selesaikan dengan menggunakan fungsi autoplot() dari paket ggfortify [39]. Dengan menggunakan fungsi ini, kita dapat dengan mudah melihat bagaimana titik-titik data dikelompokkan dalam hal kategori yang berbeda.

Pertama, kita ingin melihat bagaimana titik-titik data dikelompokkan dalam hal kategori “origin”.

# Memuat paket ggfortify
library(ggfortify)
## Loading required package: ggplot2
# Plot hasil PCA
autoplot(pc, data = Auto_numeric, colour = "origin")

Gambar 4.5 - Data “Auto” diproyeksikan ke dalam bidang linear 2 dimensi yang ditemukan melalui PCA.

Mobil Amerika (berwarna merah) dipisahkan dari mobil yang dibuat di negara lain (dalam warna lain). Dengan menggunakan reduksi dimensionalitas melalui PCA, kita dapat memproyeksikan semua titik data dalam ruang dimensi tinggi ke dalam ruang dimensi 2 yang didefinisikan oleh bidang linear, yang merupakan subruang vektor dalam ruang dimensi tinggi. Hal ini memungkinkan kita untuk memvisualisasikan bagaimana titik-titik data didistribusikan dan membentuk kelompok.