Mengapa data berdimensi tinggi sulit dibaca dan kapan PCA membantu.
Bagaimana principal component, variance, dan proyeksi bekerja secara visual.
Cara memilih jumlah komponen, mencoba PCA dengan Python, dan membaca batasannya.
Sebuah dataset dapat memiliki seratus kolom, tetapi belum tentu membawa seratus cerita yang berbeda. Banyak fitur bergerak bersama, mengulang sinyal yang sama, dan membuat pola utama semakin sulit terlihat.
Ketika Terlalu Banyak Fitur Menjadi Masalah
Ketika performa model sulit dijelaskan, kita sering buru-buru mengganti algoritma. Padahal ruang fiturnya sendiri mungkin terlalu ramai. Ada kolom yang berkorelasi kuat, ada yang mengulang informasi, dan ada yang lebih banyak menyumbang noise.
Setiap fitur menambah satu dimensi. Komputer tetap dapat menghitung ruang seratus dimensi, tetapi kita tidak dapat melihatnya secara langsung. Akibatnya, cluster, outlier, dan hubungan antarobservasi menjadi lebih sulit diperiksa.
- Beberapa fitur saling tumpang tindih.
- Sebagian fitur mengulang sinyal yang sudah ada.
- Sebagian fitur lebih banyak membawa noise daripada informasi.
- Proses training dapat menjadi lebih lambat dan hasilnya lebih sulit dijelaskan.
Pertanyaan PCA sebenarnya sederhana: bisakah kita memakai lebih sedikit dimensi, tetapi tetap mempertahankan sebagian besar pola penting dalam data?
Apa Itu PCA?
Principal Component Analysis, atau PCA, menyusun sumbu baru dari kombinasi fitur asli. Sumbu tersebut disebut principal component, lalu diurutkan berdasarkan banyaknya variasi data yang berhasil ditangkap.
Arah dengan penyebaran terbesar menjadi PC1. PC2 menangkap variasi terbesar berikutnya dan dibuat tegak lurus terhadap PC1 agar tidak mengulang informasi yang sama. Komponen selanjutnya mengikuti aturan serupa.
Cara Termudah Membayangkan PCA
Bayangkan sekumpulan titik yang membentuk awan diagonal. Kita masih bisa memakai sumbu horizontal dan vertikal, tetapi keduanya tidak mengikuti bentuk utama data.
PCA memutar sistem koordinat hingga satu sumbu sejajar dengan arah terpanjang awan. Itulah PC1. Sumbu kedua menangkap penyebaran yang tersisa. Jadi PCA tidak langsung membuang kolom; ia mengubah sudut pandang terlebih dahulu, lalu memilih arah yang layak disimpan.
Principal Component Bukan Kolom Asli
Bagian ini penting: principal component bukan kolom yang sudah tersedia. Ia merupakan kombinasi berbobot dari fitur asli. Untuk data nilai matematika, fisika, dan kimia, salah satu komponen dapat berbentuk:
PC1 = 0.58 × matematika + 0.57 × fisika + 0.58 × kimia
Skor PC1 tidak lagi berarti satu mata pelajaran. Nilai itu merangkum ketiganya. Koefisien 0,58 dan 0,57 disebut loading; dari sana kita dapat membaca fitur mana yang paling kuat membentuk komponen.
Inilah pembeda PCA dan feature selection. Feature selection mempertahankan kolom lama, sedangkan PCA membuat representasi baru.
Contoh Praktis: Dataset Nilai Siswa
Ambil empat nilai siswa: matematika, fisika, kimia, dan biologi. Keempatnya mungkin bergerak bersama karena siswa yang kuat pada sains cenderung memperoleh nilai baik pada lebih dari satu mata pelajaran.
PCA dapat merangkum pola bersama itu ke PC1, sementara PC2 menangkap perbedaan yang belum terwakili, misalnya kecenderungan antara eksakta dan biologi. Sebutan “kemampuan sains” tetap merupakan interpretasi kita; PCA hanya menghasilkan angka dan loading.
Cara Kerja PCA, Langkah demi Langkah
Kita memang akan memakai library untuk menjalankan PCA. Namun urutan perhitungannya tetap perlu dipahami agar hasil transformasi tidak diterima begitu saja.
- Standarisasi data. Samakan skala fitur agar kolom dengan angka besar tidak mendominasi hanya karena satuannya.
- Hitung covariance matrix. Matriks ini menggambarkan bagaimana pasangan fitur berubah bersama.
- Cari eigenvector dan eigenvalue. Eigenvector menunjukkan arah komponen, sedangkan eigenvalue menunjukkan banyaknya variasi yang ditangkap.
- Urutkan komponen. Komponen dengan eigenvalue terbesar ditempatkan lebih dahulu.
- Proyeksikan data. Data asli dipindahkan ke ruang baru menggunakan komponen yang dipilih.
Observasinya tidak berubah; yang berubah adalah koordinatnya. Setiap baris kini dinyatakan sebagai skor PC1, PC2, dan seterusnya, sehingga ruang data dapat dipadatkan tanpa menghapus baris apa pun.
Explained Variance: Berapa Banyak yang Masih Tersimpan?
Setelah komponen diurutkan, pertanyaan berikutnya adalah berapa banyak yang perlu disimpan. Explained variance ratio menunjukkan bagian variasi total yang dibawa setiap komponen.
Jika PC1 menjelaskan 52% dan PC2 23%, proyeksi dua dimensi menyimpan 75% variasi. Nilai itu mungkin cukup untuk eksplorasi visual, tetapi belum tentu cukup untuk prediksi. Keputusan akhirnya perlu diuji pada pekerjaan setelah PCA, bukan berdasarkan angka populer semata.
Jumlah komponen bukan angka sakral. Pilih berdasarkan explained variance, tujuan analisis, dan performa proses setelah PCA.
Mengapa Standarisasi Penting?
PCA mencari variance terbesar. Karena itu, fitur dengan rentang angka lebar dapat mendominasi meski secara konteks tidak lebih penting.
Pendapatan bernilai jutaan, sedangkan kepuasan hanya 1 sampai 10. Tanpa standarisasi, pendapatan akan tampak jauh lebih berpengaruh hanya karena satuannya. StandardScaler menempatkan fitur pada skala yang sebanding sebelum arah utama dicari.
Mengubah Puluhan Dimensi Menjadi Visual 2D atau 3D
PCA memungkinkan kita menggambar data 40 atau 100 dimensi melalui dua atau tiga komponen utama. Plotnya dapat memperlihatkan cluster, outlier, dan arah penyebaran yang sebelumnya tersembunyi.
Namun gambar tersebut tetap sebuah proyeksi. Dua titik yang berdekatan di PC1 dan PC2 belum tentu benar-benar dekat jika komponen lain menyimpan variasi penting. Gunakan visual PCA sebagai petunjuk eksplorasi, bukan bukti tunggal.
PCA, Feature Selection, dan Clustering Itu Berbeda
PCA, feature selection, dan clustering sering berada dalam pipeline yang sama, tetapi pekerjaan mereka berbeda.
- Feature selection memilih sebagian fitur asli dan mempertahankan makna kolomnya.
- PCA membentuk komponen baru dari kombinasi fitur asli.
- Clustering mengelompokkan observasi berdasarkan kemiripan.
Jika nama fitur asli harus tetap mudah dijelaskan, feature selection biasanya lebih tepat. Jika banyak fitur numerik saling berkorelasi dan perlu dipadatkan, PCA layak dicoba. Jika tujuan kita mencari kelompok observasi tanpa label, pekerjaan itu milik clustering.
PCA dapat dijalankan sebelum clustering untuk mengurangi redundansi, tetapi tidak menjamin kelompok menjadi lebih baik. Bandingkan hasil sebelum dan sesudah transformasi.
Kapan PCA Layak Dipakai?
PCA layak dicoba ketika fitur numerik berjumlah banyak, saling berkorelasi, dan sulit divisualisasikan. Citra, sinyal, serta data sensor sering memenuhi kondisi ini.
Trade-off-nya jelas: komponen baru lebih sulit dijelaskan, variasi yang dibuang tidak dapat dipulihkan dari hasil proyeksi, dan hubungan non-linear mungkin tidak tertangkap. Lebih penting lagi, PCA mengoptimalkan variance, bukan akurasi target. Selalu bandingkan performa validasi sebelum dan sesudah PCA.
Mencoba PCA dengan Python
Contoh berikut memakai StandardScaler untuk menyamakan skala, lalu mempertahankan dua principal component dengan scikit-learn.
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import numpy as np
# Contoh data: [matematika, fisika, kimia, biologi]
X = np.array([
[85, 88, 90, 84],
[78, 75, 80, 79],
[92, 95, 94, 91],
[60, 65, 63, 62],
[70, 72, 68, 71]
])
# Standarisasi data
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# Mengurangi data menjadi 2 principal components
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
print("Data setelah transformasi PCA:")
print(X_pca)
print("Explained variance ratio:")
print(pca.explained_variance_ratio_)
n_components=2 meminta PCA mempertahankan dua komponen pertama. Setelah transformasi, periksa explained_variance_ratio_ untuk mengetahui proporsi variasi yang disimpan oleh masing-masing komponen. Untuk eksperimen model, bandingkan juga performa validasi sebelum dan sesudah PCA.
Yang Perlu Kita Bawa Pulang
PCA bukan tombol untuk membuat semua dataset menjadi lebih baik. Ia adalah cara mengganti koordinat data, mempertahankan arah dengan variance terbesar, lalu membuang komponen yang kita anggap kurang diperlukan.
Representasi yang lebih ringkas dibayar dengan hilangnya sebagian informasi dan interpretasi yang lebih sulit. Perlakukan PCA sebagai eksperimen: standarkan data bila perlu, periksa explained variance, lihat proyeksinya, lalu ukur dampaknya pada model atau analisis berikutnya.
Cara paling aman memahami PCA adalah melihat apa yang berubah ketika jumlah komponen digeser. Teori memberi arah, tetapi perbandingan hasil membuat konsepnya benar-benar terasa.
Ringkasan praktis
- PCA membentuk komponen baru dari kombinasi fitur asli, bukan sekadar memilih beberapa kolom.
- Explained variance membantu menentukan berapa banyak komponen yang layak dipertahankan.
- Standarisasi skala dan perbandingan hasil sebelum-sesudah PCA sama pentingnya dengan transformasinya.
Pertanyaan yang sering muncul
Apakah PCA termasuk feature selection?
Tidak. Feature selection mempertahankan sebagian kolom asli, sedangkan PCA membentuk komponen baru dari kombinasi berbobot seluruh fitur yang digunakan.
Berapa jumlah principal component yang sebaiknya dipakai?
Tidak ada angka tunggal untuk semua dataset. Periksa cumulative explained variance, kebutuhan visualisasi, dan performa proses berikutnya. Coba beberapa nilai di lab PCA interaktif untuk melihat trade-off-nya.
Visual PCA dan dokumentasi scikit-learn
Pelajari intuisi geometris melalui Setosa, lalu cocokkan implementasinya dengan dokumentasi resmi scikit-learn.
Buka visual PCA →