Principal Component Analysis (PCA): Teknik Reduksi Dimensi untuk Data yang Lebih Sederhana

Sahrial Ihsani Ishak
9 min readApr 24, 2023

--

Halo semua, selamat datang di blog saya. Saya sangat senang dapat berbagi pengalaman dan pengetahuan saya melalui tulisan-tulisan yang saya posting di sini. Kali ini saya akan mencoba mengulas tentang Principal Component Analysis (PCA)

Principal Component Analysis (PCA) adalah salah satu teknik yang sangat populer dalam melakukan analisis multivariat. Dalam analisis multivariat, data yang dikumpulkan seringkali memiliki lebih dari satu variabel yang saling terkait satu sama lain. Teknik analisis multivariat digunakan untuk mengeksplorasi hubungan ini, sehingga kita dapat mengidentifikasi pola dan tren dalam data yang kompleks. Namun, apakah Anda tahu asal mula dari teknik ini?

Karl Pearson

PCA pertama kali diperkenalkan oleh Karl Pearson, seorang matematikawan Inggris pada tahun 1901. Pada saat itu, PCA belum terlalu populer karena keterbatasan komputasi pada zaman itu. Hingga, pada tahun 1933, seorang matematikawan Amerika bernama Harold Hotelling mengembangkan kembali PCA sebagai alat statistik modern yang berguna untuk analisis data multivariat. Dia menemukan bahwa teknik ini dapat digunakan untuk mengurangi dimensi data dan menganalisis pola data yang kompleks.

Sejak saat itu, PCA telah digunakan secara luas di berbagai bidang seperti pengenalan wajah, visi komputer, dan kompresi gambar. Teknik ini juga digunakan untuk menemukan pola dalam data dengan dimensi yang tinggi dalam bidang keuangan, penambangan data, bioinformatika, psikologi, dan lain sebagainya. PCA juga digunakan untuk mendapatkan variabel yang paling signifikan pada data sehingga dapat membuat keputusan yang lebih baik berdasarkan data yang ada.

Ilustrasi PCA

Principal Component Analysis (PCA) merupakan teknik analisis data multivariat yang digunakan untuk mengidentifikasi pola dan hubungan antara variabel yang terkait dalam satu set data. Tujuan dari PCA adalah untuk mengurangi dimensi data dengan memilih variabel yang paling signifikan dan menggabungkannya menjadi beberapa komponen utama, sehingga data dapat direpresentasikan dalam ruang yang lebih sederhana.

Penggunaan teknik reduksi dimensi seperti Principal Component Analysis (PCA) seringkali sangat bermanfaat sebelum melakukan pemodelan menggunakan machine learning. Beberapa keuntungan utama dari menggunakan PCA adalah mengurangi dimensi dari dataset, mengurangi risiko overfitting pada model machine learning yang dibangun, dan lebih mudah untuk mengenali pola yang signifikan. Penggunaan PCA dapat mempercepat waktu komputasi kebanyakan algoritme machine learning karena memiliki sedikit dimensi data yang harus dilihat.

Misalkan kita mempunyai data asli yang terdiri dari 2 variabel yaitu x1 dan x2

Data asli

Sekarang, kita ingin mengidentifikasi principal component pertama yang menjelaskan jumlah variansi tertinggi. Secara grafis, jika kita menggambar sebuah garis yang membelah oval secara memanjang, garis tersebut menunjukkan komponen yang menjelaskan variansi terbesar.

Misalkan kita hanya ingin memproyeksikan data pada principal component pertama saja. Dengan kata lain, kita ingin menggunakan PCA untuk mengurangi dataset dua dimensi menjadi dataset satu dimensi. Pada dasarnya, kita akan memampatkan dataset kita ke dalam satu garis (dengan memproyeksikannya pada garis tersebut). Garis tunggal tersebut merupakan principal component pertama.

Inilah tampilan data setelah diproyeksikan pada satu dimensi yang sesuai dengan principal component pertama:

Principal component pertama

Selanjutnya, bagaimana jika kita ingin mencari principal component kedua?

Principal component kedua harus ortogonal terhadap principal component pertama. Dengan kata lain, Principal component kedua berusaha menangkap variansi pada data yang tidak ditangkap oleh Principal component pertama. Pada data kita yang mempunyai dua dimensi, hanya ada dua komponen utama. Berikut adalah gambaran dari data dan komponen utama pertama dan kedua:

Sekali lagi, Anda dapat melihat bahwa dua principal component saling tegak lurus. Keduanya menangkap elemen independen dari kumpulan data. Jika kita menggunakan PCA pada kumpulan data ini dan memproyeksikan kumpulan data asli ke dua principal component, maka tidak ada informasi yang hilang karena kita mentransformasikan dari kumpulan data dua dimensi menjadi kumpulan data dua dimensi yang baru.

Berikut adalah gambaran dari data yang diproyeksikan pada dua principal component:

2 Principal Component

Langkah-langkah PCA:

  1. Standarisasi data
  2. Hitung matriks kovarian
  3. Hitung nilai eigen
  4. Hitung vektor eigen
  5. Temukan data akhir yang merepresentasikan principal component

Mari kita bahas penerapan PCA langsung dengan sampel data dan rumus dari tiap-tiap langkah yang telah disebutkan.

Persiapkan data

Berikut data yang digunakan dalam perhitungan PCA kali ini.

Standarisasi Data

Standarisasi data yang paling umum digunakan adalah Z-Score

Z-Score

di mana:

x = Nilai pada variabel

μ = Rerata seluruh data pada suatu variabel

σ = Standar deviasi

Standar deviasi dapat dihitung menggunakan rumus berikut

Standar deviasi

di mana:

s = Standar deviasi

Xi = Data ke i dalam suatu variabel

X̄ = Rerata data dalam suatu variabel

n = Jumlah sampel data

Variabel X

μ = 1,81

Σ (Xi — X̄)² = 5,55

σ = 0,785211

Variabel Y

μ = 1,91

Σ (Xi — X̄)² = 6,45

σ = 0,846496

Data baru yang telah dinormalisasi dapat dilihat pada gambar berikut

Z Score

Hitung Matriks Kovarian

Kovarians adalah ukuran dalam statistik untuk melihat bagaimana perubahan dalam satu variabel dikaitkan dengan perubahan dalam variabel kedua. Secara khusus, kovarians mengukur sejauh mana dua variabel terkait secara linear.

Matriks Kovarian

di mana:

  • Xi = Data ke i dalam variabel X
  • X̄ = Rerata data dalam variabel X
  • Yi = Data ke i dalam variabel Y
  • Ȳ = Rerata data dalam variabel Y

Terdapat 4 matriks kovarian yaitu Cov(X,X), Cov(X,Y), Cov(Y,X) dan Cov(Y,Y)

Cov(X,X) = Σ (Xi — X̄)(Yi — Ȳ ) = 1

Cov(X,Y) = Σ (Xi — X̄)(Xi — Ȳ ) = 0,925929

Cov(Y,X) = Σ (Xi — X̄)(Yi — Ȳ ) = 0,92592927

Cov(Y,Y) = Σ (Xi — X̄)(Yi — Ȳ ) = 1

Matriks Kovarian

Matriks Kovarian

Hitung Nilai Eigen

Nilai eigen adalah karaktersitik dari suatu vektor yang berukuran 𝑛 × 𝑛. Nilai eigen biasanya dilambangkan dengan (𝜆).

Nilai eigen dapat dihitung menggunakan rumus berikut:

Rumus Mencari Nilai Eigen

di mana:

Persamaan Ax = λ x adalah definisi matematis dari vektor eigen pada matriks persegi A. Persamaan ini dapat dijabarkan sebagai berikut:

  • A adalah matriks persegi dengan ukuran n x n.
  • x adalah vektor n-dimensi, yang merupakan vektor eigen dari matriks A.
  • λ adalah nilai skalar yang merupakan nilai eigen (eigenvalue) dari matriks A.
  • I adalah matriks identitas

Dari matriks kovarian pada pembahasan diatas, nilai eigen diperoleh

Perhitungan untuk Mencari Matriks

Kemudian, setelah mendapatkan matriks tersebut barulah selanjutnya adalah mencari determinan dari matriks tersebut. Hasil perhitungannya didapatlah persamaan yang merepresentasikan nilai eigen yaitu:

λ² -2λ + 0,1427, sehingga nilai eigen nya adalah λ₁ = 1,5706 λ₂ = 0,4294

Hitung Vektor Eigen

Vektor eigen adalah vektor kolom bukan nol yang bila dikalikan dengan suatu matriks berukuran n x n akan menghasilkan vektor lain yang memiliki nilai kelipatan dari vektor Eigen itu sendiri.

Untuk mencari vektor eigen yang terkait dengan nilai eigen λ₁ = 1,5706, kita perlu mencari vektor x yang memenuhi persamaan:

(A — λ₁I)x = 0

di mana I adalah matriks identitas dan 0 adalah vektor nol. Dalam hal ini, A adalah matriks yang telah diberikan sebelumnya, yaitu:

A = | 1 0,925929273 | | 0,925929273 1 |

λ₁ = 1,5706

dan I adalah matriks identitas 2x2, yaitu:

I = | 1 0 | | 0 1 |

Dengan mengganti nilai-nilai di atas, persamaan yang harus kita selesaikan adalah:

(A — λ₁I)x = | 1 0,925929273 | — | 1,5706 0 | | x₁ | | 0 | | 0,925929273 1 | | 0 1,5706 | | x₂ | = | 0 |

Setelah melakukan perhitungan, persamaan di atas dapat disederhanakan menjadi:

| -0,5706 0,9259 | | 0,9259 -0,5706 || x = 0

Untuk menyelesaikan persamaan ini, kita dapat menggunakan metode eliminasi Gauss atau melakukan inversi matriks. Namun, kita juga dapat menggunakan metode lain yang lebih cepat seperti metode reduksi baris yang dapat menyelesaikan persamaan ini dengan mudah. Dengan melakukan metode reduksi baris pada matriks augmented [A — λ₁I | 0], kita dapat menemukan solusi untuk vektor eigen yang terkait dengan eigenvalue λ₁ = 1,5706. Dalam hal ini, solusi untuk vektor eigen adalah:

x₁ = 0,7071 x₂ = 0,7071

Sehingga, eigenvector yang terkait dengan eigenvalue λ₁ = 1,5706 adalah:

v₁ = [0,7071, 0,7071]^T

Selanjutnya adalah mencari vektor eigen untuk nilai eigen λ₂ = 0,4294

(A — λ₂I) adalah:

| 1–0,4294 0,9259 | | 0,9259 1–0,4294 |

Kita perlu mencari vektor x = [x₁, x₂] sehingga (A — λ₂I)x = 0. Maka, kita dapatkan persamaan sebagai berikut:

(1–0,4294)x₁ + 0,9259x₂ = 0 0,9259x₁ + (1–0,4294)x₂ = 0

Kita dapat menyederhanakan persamaan ini menjadi:

0,5706x₁ + 0,9259x₂ = 0 0,9259x₁ + 0,5706x₂ = 0

Seperti sebelumnya, kita dapat menggunakan metode eliminasi Gauss-Jordan untuk menyelesaikan sistem persamaan linear ini.

Matriks augmentasi dari sistem persamaan ini adalah:

| 0,5706 0,9259 0 | | 0,9259 0,5706 0 |

Kita menggunakan operasi baris dasar untuk mengubah matriks augmentasi ini menjadi matriks echelon baris:

| 1 1,6180 0 | | 0 -0,3528 0 |

Dari sini, kita bisa menuliskan solusi umum sistem persamaan linear:

x₁ + 1,6180x₂ = 0

x₂ bebas, kita bisa memilih x₂ = 1, maka

x₁ = -1,6180

Jadi, vektor eigen untuk nilai eigen λ₂ = 0,4294 adalah:

v₂ = [-1,6180, 1]^T

Sehingga, matriks vektor eigen gabungan dari tiap nilai eigen adalah

Vektor Eigen

Temukan data akhir yang merepresentasikan principal component

FinalData = RowFeatureVector x RowZeroMeanData

RowFeatureVector adalah matriks dengan vektor eigen di kolom yang ditransposisikan sehingga vektor eigen sekarang berada di baris, dengan vektor eigen yang paling signifikan di bagian atas. RowZeroMeanData adalah data yang disesuaikan dengan rata-rata yang ditransposisikan, yaitu item data berada pada setiap kolom, dengan setiap baris menyimpan dimensi terpisah.

Perhitungan untuk Mencari Principal Component

Hasil tersebut kemudian akan di transpose, sehingga data akan menjadi seperti berikut ini

Final Data

Proporsi keragaman data yang diterangkan untuk tiap principal component.

Untuk PC 1 keragaman data dapat dicari menggunakan rumus :

Nilai eigen 1 / Total nilai eigen

= 1,5706 / (1,5706+0,4294)

= 1,5706 / 2

= 0,79

Artinya PC 1 mampu menerangkan keragaman sebesar 79% . Perlu diingat proporsi keragaman ini bermacam, ada yang 80% sudah mewakili, dan ada 75% saja sudah cukup untuk mewakili keseluruhan data. Selain itu nilai eigen yang diperoleh pada PC 1 itu sudah lebih dari 1, artinya PC 1 sudah cukup menerangkan keseluruhan data.

Berikut referensi kode program terkait dengan algoritme PCA yang digunakan untuk mereduksi dimensi pada data Iris

Sekian Artikel kali ini, mudah-mudahan dapat memberikan informasi yang bermanfaat bagi pembaca.

--

--