Pca 1
Pca 1
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.
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).
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
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.
Untuk mentransformasi data ke sumbu Komponen Utama yang ada, cukup mengalikan
data tersebut dengan invers dari Komponen Utama yang telah didapat sebelumnya.
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.
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
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.
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
Ini biasanya dilambangkan dengan Σ (greek upper case sigma) - NOT summation symbol
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
Persis sama dengan pembelajaran yang diawasi kecuali kita sekarang melakukannya
dengan data yang tidak berlabel.
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.
1. Compression
2. Visualization
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.