Anda di halaman 1dari 8

Analisis Komponen Utama (AKU)

Salah satu masalah yang sering terjadi dalam suatu machine learning adalah “Curse of
Dimensionality problem”, dimana mesin kesulitan untuk menangani sejumlah masukan data
dengan dimensi yang sangat tinggi. Salah satu cara yang paling umum digunakan untuk
menangani proses ini adalah dengan mengurangi dimensi dari data masukan dengan tetap
menjaga informasi yang terkandung didalamnya. Salah satu cara yang paling sering digunakan
adalah AKU (Analisis Komponen Utama), karena AKU dapat mereduksi dimensi seminimal
mungkin dengan tetap mempertahankan informasi yang terkandung di dalamnya.

Contoh proses Dimensionality Reduction dari suatu data secara sederhana

Terdapat sekumpulan data dengan penyebaran sebagai berikut (untuk kasus 2 dimensi):

1. Untuk proyeksi terhadap sumbu X, didapat sebaran data antara -2.8 sampai +2.7

2. Untuk proyeksi terhadap sumbu Y, didapat sebaran data antara -9.6 sampai +9.5

Dapat dilihat bahwa varians yang dihasilkan proyeksi data terhadap sumbu Y lebih besar
daripada proyeksi tehadap sumbu X, maka apabila kita ingin mereduksi data tersebut menjadi 1
dimensi saja maka proyeksi sumbu Y yang akan digunakan sebagai principal component data
tersebut. Untuk data dengan dimensi lebih banyak, kita dapat menyimpan lebih dari 1 principal
componet (urutan principal component yang dipilih untuk membentuk dimensi yang diinginkan
berdasarkan banyaknya varians yang dihasilkan oleh principal component tersebut), hal ini
dilakukan agar varians yang hasilkan lebih banyak sehingga informasi yang dihasilkan dapat
lebih terjaga (sesuai).

Hal yang perlu diperhatikan juga adalah sumbu dari setiap principal component harus
saling tegak lurus satu sama lain (Orthogonal Vectors).

AKU dapat ditemukan dengan cara melakukan Dekomposisi Nilai Eigen dari Matriks
kovarians (atau Matriks korelasi) dari suatu data atau menggunakan metode Singular Value
Decomposition (SVD).

Contoh Mencari komponen utama dari Suatu Data

1. Transformasi Mean-Centering

Proses memindahkan semua data kebagian tengah, guna mendapatkan data yang lebih
stabil. Berikut langkah-langkah mean-centering:
 Cari mean data

 Pindahkan setiap posisi data kebagian tengah, dengan cara mengurangi nilai setiap data
dengan nilai mean data

2. Menghitung Matriks kovarians

Covariance-Matrix berisi seluruh pasangan covariance dari semua himpunan varians


data yang ada. Secara umum, berikut bentuk matrixnya:

3. Mencari Nilai Eigen dan Vetor Eigen dari Matriks kovarians (Komponen Utama) vektor
Eigen dari suatu matriks A (berukuran n x n) adalah suatu vektor v, yang jika dikalikan
dengan matriks A menghasilkan kelipatan dari vektor v tersebut. Nilai kelipatan tersebut
merupakan Nilai Eigen.

4. Urutkan Komponen Utama tersebut secara menurun

5. Transformasi Data ke Sumbu Komponen Utama

Untuk mentransformasi data ke sumbu Komponen Utama yang ada, cukup mengalikan
data tersebut dengan invers dari Komponen Utama yang telah didapat sebelumnya.

Prinsip Analisis Komponen (AKU): Rumusan Masalah

Dari penelasan diatas, untuk masalah algoritma mengurangi dimensi yang paling banyak
digunakan adalah Analisis Komponen Utama. Di sini akan dibahas menegenai bagaimana kita
merumuskan dengan tepat apa yang kita inginkan agar dilakukan AKU. Jadi, katakanlah kita
memiliki kumpulan data Dimensi 2 yang ingin kita kurangi menjadi Dimensi 1.

Gambar 1
Dari gambar 1, jarak antara setiap titik dan versi yang diproyeksikan harus kecil (garis
biru di bawahnya pendek). AKU mencoba untuk menemukan permukaan dimensi yang lebih
rendah sehingga jumlah kuadrat ke permukaan diminimalkan. Garis biru terkadang disebut
kesalahan proyeksi. AKU mencoba menemukan permukaan (garis lurus dalam kasus ini) yang
memiliki kesalahan proyeksi minimum. Biasanya harus melakukan normalisasi dan penskalaan
fitur pada data Anda sebelum dilakukan AKU.

Gambar 2

Untuk pengurangan dimensi dari dimensi 2 e dimensi 1, kita harus menemukan vektor
u(1),
yang merupakan beberapa dimensi. Dari gambar 2, u(1) bisa positif atau negatif (-u(1)) yang
tidak ada bedanya. Masing-masing vektor menentukan garis merah yang sama.

Dalam kasus yang lebih umum, untuk mengurangi dari Dimensi n ke Dimensi k yaitu
dengan menentukan vektor k (u(1), u(2), ..., u(k)) untuk memproyeksikan data untuk
meminimalkan kesalahan proyeksi.

Begitu banyak vektor tempat kita memproyeksikan data. Tentukan satu set vektor yang
kita proyeksikan data ke subruang linier yang direntang oleh himpunan vektor tersebut. Kita
bisa mendefinisikan sebuah titik dalam pesawat dengan vektor k, misalnya dimensi 3 ke
dimensi 2.

Tentukan sepasang vektor yang menentukan bidang 2D (permukaan) ke mana akan


memproyeksikan data. Sama seperti contoh "kotak dangkal" dalam kompresi, dicoba membuat
kotak dangkal mungkin (dengan menentukan dua dari tiga dimensi itu, sehingga kedalaman
kotak diminimalkan), terlihat pada gambar 3.
Gambar 3

AKU bukan regresi linier. Meski memiliki kesamaan kosmetik, AKU sangat berbeda.
Untuk regresi linier, ketika garis lurus untuk meminimalkan garis lurus antara titik dan garis
kuadrat.

Untuk AKU meminimalkan besarnya jarak ortogonal terpendek aan memberikan efek
yang sangat berbeda. Lebih umum lagi dengan regresi linier kita mencoba untuk memprediksi
"y". Dengan AKU tidak ada "y" - alih-alih kita memiliki daftar fitur dan semua fitur diperlakukan
sama. Jika kita memiliki data dimensi 3, emudian ingin menurunkan dari dimensi 3 e dimensi 2
maka miliki 3 fitur yang diobati secara simetris.

Algoritma AKU

Sebelum menerapkan AKU harus melakukan preprocessing data. Dengan seperangkat


contoh yang tidak berlabel yang harus kita lakukan:

1. Normalisasi rata-rata

Ganti setiap xji dengan xj - μj. Dengan kata lain, tentukan rata-rata dari setiap set
fitur, dan kemudian untuk setiap fitur kurangi mean dari nilainya, jadi kita skala ulang rata-
rata menjadi 0.

2. Penskalaan fitur (tergantung data)

Jika fitur memiliki skala yang sangat berbeda maka skala sehingga mereka semua
memiliki rentang nilai yang sebanding. Misalnya xji diatur ke (xj - μj) / sj. Dimana sj adalah
beberapa ukuran dari jangkauan, maka kemungkinan Terbesar – terkecil dan Standar
deviasi (lebih umum).
Dengan proses preprocessing, AKU menemukan ruang sub dimensi yang lebih rendah
yang meminimalkan jumlah kuadrat. Singkatnya, untuk menurunkan dari dimensi 2 ke dimensi
1 kita akan melakukan sesuatu seperti pada gambar 4.

Gambar 4

Perlu menghitung dua hal yaitu hitung vektor u (Pesawat baru) dan menghitung z vektor
(z vektor adalah vektor fitur dimensi baru yang lebih rendah).

Derivasi matematis untuk vektor u sangat rumit. Tapi setelah melakukannya, prosedur
untuk menemukan setiap vektor u tidaklah terlalu sulit.

Deskripsi Algoritma

Mengurangi data dari n-dimensi menjadi k-dimensi yaitu dengan

1. Hitunglah matriks kovarians

Ini biasanya dilambangkan dengan Σ (greek upper case sigma) - NOT summation symbol

Σ = sigma (Ini adalah matriks [n x n])

2. Hitung vektor eigen dari matriks Σ

[U, S, V] = svd (sigma)

svd = dekomposisi nilai singular


Lebih stabil secara numerik daripada eig

eig = juga memberi vektor eigen

U, S dan V adalah matriks. Matriks U juga merupakan matriks [n x n]. Ternyata kolom U
adalah vektor u yang kita inginkan. Jadi untuk mengurangi sistem dari n-dimensi ke k-dimensi
ambil k-vektor pertama dari U (kolom k pertama).

Selanjutnya kita perlu menemukan beberapa cara untuk mengubah x (yang n dimensi)
menjadi z (yang merupakan k dimensional). Ambil kolom k pertama dari matriks u dan susun di
kolom.

z = (Ureduce) T * x

Jadi [k x n] * [n x 1] Menghasilkan matriks yang k * 1.

Persis sama dengan pembelajaran yang diawasi kecuali kita sekarang melakukannya
dengan data yang tidak berlabel.

Rekontruksi dari Representasi yang Sudah Direduksi

Analisis Komponen Utama adalah algoritma pereduksi dimana algoritma tersebut


digunakan untuk mereduksi data berdimensi tinggi menjadi representasi data berdimensi lebih
rendah. Algoritma pereduksi pasti mempunyai cara untuk mengembalikan representasi data
yang sudah direduksi menjadi aproksimasi data berdimensi tinggi kembali.
𝑇
Kita dapat mereduksi data dengan mencari nilai 𝑧 = 𝑈𝑟𝑒𝑑𝑢𝑐𝑒 𝑥, dimana 𝑥 adalah data
berdimensi tinggi. Maka untuk mengaproksimasi nilai 𝑥 kita dapat menggunakan 𝑥𝑎𝑝𝑟𝑜𝑘𝑠 =
𝑈𝑟𝑒𝑑𝑢𝑐𝑒 𝑧.

Memilih Angka dari Komponen Utama

Analisis Komponen Utama digunakan untuk mereduksi data berdimensi n menjadi data
berdimensi k. Nilai k tersebut adalah parameter dari Analisis Komponen Utama dan biasa
disebut angka dari Analisis Komponen Utama. Ada beberapa cara dalam memilih nilai k,
diantaranya adalah sebagai berikut.

Pertama coba Analisis Komponen Utama dengan 𝑘 = 1 . Lalu hitung nilai


1 𝑚 (𝑖) 2
(1) (2) (𝑚) ∑ ‖𝑥 (𝑖) −𝑥𝑎𝑝𝑟𝑜𝑘𝑠 ‖
(1) (2) (𝑚) 𝑚 𝑖=1
𝑈𝑟𝑒𝑑𝑢𝑐𝑒 , 𝑧 ,𝑧 ,…,𝑧 , 𝑥𝑎𝑝𝑟𝑜𝑘𝑠 , 𝑥𝑎𝑝𝑟𝑜𝑘𝑠 , … , 𝑥𝑎𝑝𝑟𝑜𝑘𝑠 . Lalu cek apakah 1 𝑚 2 ≤
∑ ‖𝑥 (𝑖) ‖
𝑚 𝑖=1
∑𝑘𝑖𝑖 𝑆
0,01 atau ∑𝑖=1
𝑚 ≥ 0,99 . Jika tidak, maka naikkan nilai k sampai pertidaksamaan tersebut
𝑆
𝑖=1 𝑖𝑖
dapat terpenuhi. Nilai k terkecil agar persamaan tersebutn terpenuhi adalah nilai k yang akan
kita pilih.

Saran Untuk Mengaplikasikan AKU

Aplikasi dari AKU:

1. Compression

- Mengurangi kebutuhan tempat berlebih untuk menyimpan data

- Mempercepat learning algorithm

2. Visualization

Contoh berikut akan menjelaskan bagaimana cara menggunakan AKU untuk


mempercepat learning algorithm. Misalkan terdapat supervised learning problem dengan infos
x dan labels y. Misalkan terdapat computer vision problem dimana ada 100 x 100 images maka
terdapat 10000 pixels dan jika 𝑥 (𝑖) adalah feature vectors yang mempunyai 10000 pixel
intensity values maka terdapat 10000 dimensional feature vectors.

Langkah pertama adalah ambil label training set (𝑥 (1) , 𝑦 (1) ), (𝑥 (2) , 𝑦 (2) ), … , (𝑥 (𝑚) , 𝑦 (𝑚) )
kemudian ambil x dengan mengesampingkan y sehingga menjadi unlabeled training set
𝑥 (1) , 𝑥 (2) , … , 𝑥 (𝑚) ∈ ℝ10000 . Menerapkan AKU ke unlabeled training set tersebut menjadi
𝑧 (1) , 𝑧 (2) , … , 𝑧 (𝑚) ∈ ℝ1000 sehingga akan menghasilkan new training set:
(1) (1) (2) (2) (𝑚) (𝑚)
(𝑧 , 𝑦 ), (𝑧 , 𝑦 ), … , (𝑧 , 𝑦 ). Mengurangi data dari 10000 dimentional ke 1000
dimentional dan masih memelihara sebagian besar dari variance sehingga tidak terlalu
mempengaruhi hasil tapi dapat mempercepat proses learning algorithm.

Penggunaan yang buruk dari AKU adalah untuk mencegah overfitting, karena AKU akan
membuang beberapa informasi dari keseluruhan data walaupun tidak banyak. Tapi dalam
membuang informasi tersebut tidak akan diketahui nilai apa yang terkandung dalam informasi
tersebut. Oleh karena itu, dalam mencegah overfitting akan lebih baik jika menggunakan
regularization.

Anda mungkin juga menyukai