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.
Bayangkan sebuah dataset dengan seratus kolom. Semuanya terlihat penting, beberapa ternyata saling mengulang, dan kita bahkan tidak bisa menggambarkan bentuk datanya. Di sinilah PCA mulai berguna.

Ketika Terlalu Banyak Fitur Menjadi Masalah
Dalam praktik machine learning, masalahnya tidak selalu terletak pada model. Data juga bisa membuat pekerjaan menjadi rumit: jumlah fiturnya terlalu banyak, beberapa kolom membawa pola serupa, sementara sebagian lainnya lebih banyak menambah noise.
Setiap fitur adalah satu dimensi. Karena itu, dataset dengan seratus fitur hidup di ruang seratus dimensi. Komputer masih dapat menghitungnya, tetapi kita akan kesulitan melihat pola, memeriksa outlier, atau menjelaskan hubungan antardata secara langsung.
- 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, adalah metode untuk membentuk sumbu baru dari gabungan fitur asli. Sumbu baru ini disebut principal component. PCA lalu mengurutkannya dari komponen yang paling banyak menangkap variasi data sampai yang paling sedikit.
Variasi di sini diukur dengan variance, yaitu seberapa jauh nilai menyebar dari rata-ratanya. Arah dengan penyebaran terbesar menjadi PC1. Arah berikutnya, yang harus tegak lurus terhadap PC1, menjadi PC2, lalu proses yang sama berlanjut ke komponen berikutnya.
Cara Termudah Membayangkan PCA
Bayangkan titik-titik pada grafik membentuk awan yang memanjang secara diagonal. Sumbu horizontal dan vertikal masih dapat dipakai, tetapi keduanya tidak mengikuti arah utama awan tersebut.
PCA seolah memutar penggaris hingga sejajar dengan arah terpanjang awan. Arah itu menjadi PC1. Setelah itu, PCA membuat PC2 yang tegak lurus terhadap PC1 untuk menangkap sisa variasi. Jadi, PCA tidak langsung membuang kolom. Ia terlebih dahulu mengubah orientasi ruang data, baru memilih arah yang ingin dipertahankan.

Principal Component Bukan Kolom Asli
Ini bagian yang sering membingungkan. Principal component bukan fitur yang sudah ada di dataset, melainkan kombinasi berbobot dari fitur-fitur asli. Jika datanya berisi nilai matematika, fisika, dan kimia, salah satu komponen dapat berbentuk seperti ini:
PC1 = 0.58 × matematika + 0.57 × fisika + 0.58 × kimia
PC1 bukan nilai satu mata pelajaran. Ia adalah skor baru yang merangkum ketiganya. Angka 0,58 atau 0,57 disebut loading, yaitu bobot yang menunjukkan seberapa kuat setiap fitur membentuk komponen tersebut.
Karena itu, PCA berbeda dari memilih kolom terbaik. PCA justru membuat kolom baru dari gabungan kolom lama.

Contoh Praktis: Dataset Nilai Siswa
Supaya lebih konkret, mari gunakan empat fitur: nilai matematika, fisika, kimia, dan biologi. Nilai-nilai ini mungkin berkorelasi. Siswa dengan pemahaman sains yang kuat sering memperoleh hasil yang relatif baik di beberapa mata pelajaran sekaligus.
PCA dapat menangkap pola bersama tersebut. PC1 mungkin menjadi ringkasan umum kemampuan sains, sedangkan PC2 menangkap perbedaan yang lebih spesifik, misalnya kecenderungan antara pelajaran eksakta dan biologi. Nama itu adalah interpretasi kita, bukan label yang diberikan otomatis oleh PCA.

Cara Kerja PCA, Langkah demi Langkah
Kita tidak harus menghitung PCA dengan tangan setiap kali bekerja. Namun, memahami urutannya membuat kita lebih mudah memeriksa apakah hasil transformasi masih masuk akal.
- 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.
Hasil akhirnya adalah dataset baru dengan jumlah kolom lebih sedikit. Setiap baris masih mewakili observasi yang sama, hanya koordinatnya sekarang dinyatakan sebagai PC1, PC2, dan seterusnya.

Explained Variance: Berapa Banyak yang Masih Tersimpan?
Setelah PCA dijalankan, kita perlu menentukan jumlah komponen yang akan dipertahankan. Di sinilah explained variance ratio berguna. Nilai ini menunjukkan proporsi variasi total yang dijelaskan oleh setiap komponen.
Misalnya PC1 menjelaskan 52%, PC2 23%, PC3 11%, dan PC4 6%. Dua komponen pertama berarti menyimpan 75% variasi. Apakah itu cukup? Jawabannya bergantung pada kebutuhan. Visualisasi eksploratif mungkin masih berguna dengan dua komponen, sedangkan pipeline prediksi bisa membutuhkan lebih banyak.
Jumlah komponen bukan angka sakral. Pilih berdasarkan explained variance, tujuan analisis, dan performa proses setelah PCA.

Mengapa Standarisasi Penting?
PCA mengejar variance. Akibatnya, fitur dengan rentang angka besar dapat terlihat paling penting meskipun secara konteks belum tentu demikian.
Bayangkan fitur pendapatan memiliki nilai puluhan juta, sedangkan skor kepuasan berada pada skala 1 sampai 10. Tanpa standarisasi, pendapatan dapat mendominasi komponen hanya karena satuannya jauh lebih besar. StandardScaler membantu membuat keduanya berada pada skala yang sebanding.
Mengubah Puluhan Dimensi Menjadi Visual 2D atau 3D
Kita dapat menghitung data berdimensi tinggi, tetapi tidak dapat melihat ruang dengan 40 atau 100 sumbu. PCA menjembatani keterbatasan itu dengan memproyeksikan data ke dua atau tiga komponen utama.
Plot hasil PCA dapat membantu menemukan cluster, outlier, dan pola global. Namun, kita perlu mengingat bahwa plot tersebut adalah proyeksi. Titik yang tampak berdekatan di 2D belum tentu sama dekatnya ketika seluruh dimensi diperhitungkan.
Karena itu, PCA cocok dipakai sebagai alat eksplorasi sebelum clustering, klasifikasi, regresi, atau anomaly detection, bukan sebagai bukti tunggal bahwa suatu pola pasti benar.

PCA, Feature Selection, dan Clustering Itu Berbeda
Ketiganya sering muncul dalam pipeline yang sama, tetapi menjawab pertanyaan yang 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 kita perlu mengetahui kolom asli mana yang paling penting, feature selection lebih mudah dijelaskan. Jika tujuannya memadatkan ruang fitur yang saling berkorelasi, PCA lebih sesuai. Jika kita ingin menemukan kelompok tanpa label, barulah clustering digunakan.
PCA juga dapat ditempatkan sebelum clustering untuk mengurangi redundansi. Meski begitu, hasil clustering sebelum dan sesudah PCA tetap perlu dibandingkan, bukan diasumsikan pasti lebih baik.

Kapan PCA Layak Dipakai?
PCA layak dicoba ketika dataset memiliki banyak fitur numerik yang berkorelasi, visualisasi sulit dilakukan, atau pipeline membutuhkan representasi yang lebih ringkas. Pada data citra, sinyal, atau pengukuran sensor, jumlah fitur yang besar membuat kebutuhan ini cukup umum.
Namun, ada konsekuensinya. Komponen baru lebih sulit dijelaskan karena mencampur banyak fitur. Menghapus terlalu banyak komponen juga berarti membuang variasi. Selain itu, PCA bersifat linear sehingga struktur non-linear yang kompleks bisa tidak tertangkap dengan baik.
Yang paling penting, PCA mengoptimalkan variance, bukan target prediksi. Fitur bervariasi rendah tetap bisa penting untuk membedakan kelas. Karena itu, nilai model sebelum dan sesudah PCA sebaiknya selalu dibandingkan dengan data validasi.

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 membantu ketika ruang fitur terasa terlalu besar untuk dibaca atau diproses. Metode ini membentuk sumbu baru, mengurutkannya berdasarkan variance, lalu memproyeksikan data ke sejumlah komponen yang kita pilih.
Namun, representasi yang lebih ringkas selalu datang bersama trade-off. Sebagian informasi dibuang dan makna komponen tidak sejelas fitur asli. Karena itu, PCA sebaiknya diperlakukan sebagai keputusan eksperimen: ukur explained variance, lihat visualnya, lalu uji dampaknya pada pekerjaan 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 →