Linear Discriminant Analysis (LDA)
Pendahuluan
Dalam banyak permasalahan klasifikasi, data sering memiliki jumlah fitur yang cukup besar. Tidak semua fitur tersebut benar-benar membantu memisahkan kelas. Beberapa fitur justru saling tumpang tindih, berkorelasi tinggi, atau menambah kompleksitas tanpa meningkatkan kemampuan klasifikasi secara signifikan.
Di sinilah Linear Discriminant Analysis (LDA) menjadi penting. LDA tidak hanya mengurangi dimensi data, tetapi juga mempertimbangkan label kelas agar proyeksi baru benar-benar membantu proses pemisahan antar kelas. Dengan kata lain, LDA mencari ruang baru yang membuat sampel dari kelas yang sama semakin rapat, sementara sampel dari kelas yang berbeda semakin jauh.
Melalui materi ini, Anda akan mempelajari LDA secara bertahap dan sistematis, mulai dari konsep dasar, perbedaan dengan PCA, komponen matematika utamanya, contoh perhitungan manual yang konsisten, implementasi Python, hingga cara menangani data baru setelah LDA diterapkan.
Apa Itu Linear Discriminant Analysis?
Secara umum, LDA bertujuan mencari transformasi linear:
Keterangan variabel:
- = representasi data baru pada ruang LDA,
- = matriks data asli,
- = matriks proyeksi atau kumpulan linear discriminants.
Arah proyeksi yang dipilih oleh LDA bukan sekadar arah dengan varians terbesar, tetapi arah yang memaksimalkan separasi antar kelas.
Tujuan Utama LDA
LDA memiliki dua tujuan utama.
- Mengurangi dimensi data sambil tetap mempertahankan informasi yang relevan untuk klasifikasi.
- Memisahkan kelas secara optimal dengan memanfaatkan label kelas pada data training.
LDA vs PCA
Intuisi Dasar LDA
Bayangkan kita memiliki dua kelas data di bidang dua dimensi. Banyak arah proyeksi yang mungkin dipilih untuk memetakan data tersebut ke satu garis. Namun tidak semua arah akan menghasilkan pemisahan kelas yang baik.
LDA mencari arah proyeksi yang:
- membuat data dalam kelas yang sama tetap berdekatan,
- membuat mean antar kelas sejauh mungkin,
- sehingga hasil proyeksinya lebih baik untuk klasifikasi.
Secara intuitif, LDA ingin memaksimalkan rasio:
Alur Kerja LDA Secara Umum
Hitung mean setiap kelas
Tentukan pusat data untuk masing-masing kelas.
Hitung mean keseluruhan
Tentukan rata-rata seluruh data tanpa memperhatikan kelas.
Hitung within-class scatter matrix
Matriks ini mengukur penyebaran data di dalam masing-masing kelas.
Hitung between-class scatter matrix
Matriks ini mengukur seberapa jauh mean tiap kelas terhadap mean keseluruhan.
Selesaikan masalah eigen
Gunakan matriks untuk memperoleh eigenvalues dan eigenvectors.
Pilih eigenvectors terbaik
Urutkan berdasarkan eigenvalue terbesar, lalu pilih beberapa komponen utama.
Transformasikan data ke ruang LDA
Proyeksikan data ke arah linear discriminants yang terpilih.
Mean Tiap Kelas dan Mean Keseluruhan
Misalkan dataset memiliki kelas. Mean untuk kelas ke- dinyatakan sebagai:
Keterangan variabel:
- = mean kelas ke-,
- = jumlah data pada kelas ke-,
- = himpunan data pada kelas ke-,
- = vektor fitur sampel ke-.
Mean keseluruhan dataset dinyatakan sebagai:
Keterangan variabel:
- = mean keseluruhan data,
- = jumlah seluruh sampel.
Within-Class Scatter Matrix
Within-class scatter matrix mengukur sebaran data di dalam masing-masing kelas.
Keterangan variabel:
- = within-class scatter matrix,
- = deviasi sampel terhadap mean kelasnya.
Interpretasi:
- jika nilai besar, artinya data dalam kelas cenderung menyebar,
- jika nilai kecil, artinya data dalam kelas lebih rapat.
Between-Class Scatter Matrix
Between-class scatter matrix mengukur jarak antar kelas melalui perbedaan mean kelas terhadap mean keseluruhan.
Keterangan variabel:
- = between-class scatter matrix,
- = jumlah data pada kelas ke-,
- = selisih mean kelas ke- terhadap mean keseluruhan.
Interpretasi:
- jika nilai besar, mean antar kelas saling berjauhan,
- semakin besar , semakin baik potensi pemisahan kelas.
Fungsi Objektif LDA
LDA memilih arah proyeksi yang memaksimalkan rasio berikut:
Keterangan variabel:
- = fungsi objektif LDA,
- = arah proyeksi,
- = sebaran antar kelas pada arah ,
- = sebaran dalam kelas pada arah .
Arah terbaik diperoleh melalui penyelesaian masalah eigen:
Keterangan variabel:
- = eigenvector atau arah discriminant,
- = eigenvalue yang menunjukkan pentingnya arah tersebut.
Batas Dimensi Baru pada LDA
Jika dataset memiliki kelas, maka jumlah dimensi baru maksimum yang dapat dibentuk oleh LDA adalah:
Contoh:
- jika ada 2 kelas, maka maksimum hanya 1 dimensi baru,
- jika ada 3 kelas, maka maksimum 2 dimensi baru,
- jika ada 4 kelas, maka maksimum 3 dimensi baru.
Inilah alasan LDA sangat sering digunakan untuk visualisasi data klasifikasi multi-kelas ke ruang 2D.
Contoh Perhitungan LDA yang Konsisten
Agar alurnya sinkron dari awal sampai akhir, kita gunakan satu dataset sederhana dengan 2 kelas dan 2 fitur berikut.
| ID | Kelas | ||
|---|---|---|---|
| 1 | A | 2 | 3 |
| 2 | A | 3 | 3 |
| 3 | A | 2 | 4 |
| 4 | A | 3 | 4 |
| 5 | B | 6 | 7 |
| 6 | B | 7 | 7 |
| 7 | B | 6 | 8 |
| 8 | B | 7 | 8 |
Karena hanya ada 2 kelas, maka LDA hanya dapat menghasilkan 1 linear discriminant utama, yaitu LD1.
Langkah 1: Hitung Mean Tiap Kelas
Mean kelas A
Mean kelas B
Langkah 2: Hitung Mean Keseluruhan
Langkah 3: Hitung Within-Class Scatter Matrix
Scatter untuk kelas A
Hitung deviasi setiap data kelas A terhadap :
Jumlah outer product seluruh deviasi menghasilkan:
Scatter untuk kelas B
Hitung deviasi setiap data kelas B terhadap :
Jumlah outer product seluruh deviasi menghasilkan:
Within-class scatter total
Langkah 4: Hitung Between-Class Scatter Matrix
Gunakan rumus:
Kontribusi kelas A
Karena jumlah data kelas A adalah 4, maka:
Kontribusi kelas B
Karena jumlah data kelas B adalah 4, maka:
Between-class scatter total
Langkah 5: Hitung Matriks
Karena:
maka inversenya adalah:
Selanjutnya:
Langkah 6: Hitung Eigenvalues
Cari eigenvalues dari matriks:
Gunakan persamaan karakteristik:
Sehingga diperoleh:
Eigenvalue terbesar adalah , sehingga arah eigenvector yang bersesuaian menjadi LD1.
Langkah 7: Hitung Eigenvectors
Untuk
Diperoleh:
Ambil bentuk sederhana:
Normalisasi:
Sehingga:
Inilah arah proyeksi LD1.
Untuk
Sebagai pelengkap, eigenvector kedua adalah arah ortogonal terhadap LD1, yaitu:
Namun karena hanya ada 2 kelas, kita cukup menggunakan 1 dimensi baru, yaitu LD1.
Langkah 8: Transformasi Data ke Ruang LDA
Agar hasil proyeksi lebih mudah dibaca, kita terlebih dahulu pusatkan data terhadap mean keseluruhan , lalu proyeksikan ke arah .
Rumus transformasi:
Keterangan variabel:
- = nilai proyeksi data ke ruang LDA,
- = sampel asli,
- = mean keseluruhan training data,
- = arah linear discriminant.
Hasil proyeksi tiap data
Data kelas A
Untuk titik :
Untuk titik :
Untuk titik :
Untuk titik :
Data kelas B
Untuk titik :
Untuk titik :
Untuk titik :
Untuk titik :
Sehingga data pada ruang LDA adalah:
| ID | Kelas | LD1 |
|---|---|---|
| 1 | A | -3.536 |
| 2 | A | -2.828 |
| 3 | A | -2.828 |
| 4 | A | -2.121 |
| 5 | B | 2.121 |
| 6 | B | 2.828 |
| 7 | B | 2.828 |
| 8 | B | 3.536 |
Interpretasi Hasil Transformasi
Dari hasil di atas terlihat bahwa:
- seluruh data kelas A memiliki nilai LD1 negatif,
- seluruh data kelas B memiliki nilai LD1 positif,
- artinya satu dimensi baru hasil LDA sudah cukup untuk memisahkan kedua kelas dengan sangat baik.
Ini menunjukkan bahwa arah yang ditemukan oleh LDA memang sesuai untuk klasifikasi.
Cara Menangani Data Baru setelah LDA Diterapkan
Bagian ini sangat penting karena sering menjadi sumber kekeliruan.
Langkah yang benar adalah sebagai berikut.
Gunakan parameter dari data training
Simpan mean training dan matriks proyeksi atau arah .
Lakukan preprocessing yang sama
Jika pada training Anda melakukan centering atau standardization, maka data baru harus diproses dengan parameter yang sama.
Transformasikan data baru ke ruang LDA
Gunakan rumus:
Jika hanya ada satu komponen, maka cukup gunakan .
Masukkan hasil transformasi ke model klasifikasi
Jika Anda melatih classifier pada data hasil LDA, maka data baru juga harus masuk ke classifier dalam bentuk hasil transformasi LDA.
Contoh sederhana
Misalkan data baru adalah:
Gunakan mean training:
Maka:
Proyeksikan ke LD1:
Karena nilainya berada pada sisi negatif dan lebih dekat ke kelompok kelas A, maka data baru tersebut cenderung diklasifikasikan ke kelas A.
Kelebihan LDA
- Memanfaatkan label kelas sehingga cocok untuk klasifikasi.
- Dapat mengurangi dimensi sekaligus meningkatkan separasi kelas.
- Baik digunakan ketika fitur memiliki korelasi dan kelas relatif terpisah secara linear.
- Hasil proyeksi lebih interpretable untuk masalah klasifikasi dibanding metode reduksi dimensi yang tidak menggunakan label.
Keterbatasan LDA
- Mengasumsikan kelas memiliki distribusi yang relatif normal.
- Mengasumsikan kovarians antar kelas relatif serupa.
- Kurang optimal jika batas antar kelas sangat non-linear.
- Sensitif terhadap outlier pada beberapa kasus.
- Jumlah dimensi baru terbatas pada .
Implementasi Python untuk Reduksi Dimensi dan Klasifikasi
Berikut contoh implementasi LDA menggunakan dataset publik Iris.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.metrics import accuracy_score, classification_report
# Load dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split data
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
# LDA
lda = LinearDiscriminantAnalysis(n_components=2)
X_train_lda = lda.fit_transform(X_train, y_train)
X_test_lda = lda.transform(X_test)
# Klasifikasi langsung dengan LDA
y_pred = lda.predict(X_test)
print("Training shape:", X_train.shape)
print("LDA training shape:", X_train_lda.shape)
print("Test accuracy:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))Membaca Output Python
Saat program dijalankan, perhatikan hal-hal berikut.
fit_transform(X_train, y_train)digunakan untuk membentuk ruang LDA dari data training.transform(X_test)digunakan untuk memproyeksikan data test ke ruang LDA yang sama.predict(X_test)menghasilkan klasifikasi langsung dengan model LDA.- Jika jumlah kelas pada Iris adalah 3, maka maksimum dimensi LDA adalah:
Karena itu, penggunaan n_components=2 pada dataset Iris sudah sesuai.
Ringkasan
Poin utama yang perlu diingat:
- LDA adalah metode supervised.
- Fokus utama LDA adalah separasi kelas, bukan sekadar varians.
- Dalam dataset dengan kelas, dimensi baru maksimum adalah .
- Data baru harus ditransformasikan menggunakan parameter dari training data, bukan dihitung ulang.
- LDA dapat digunakan untuk reduksi dimensi maupun klasifikasi.
Penutup
Linear Discriminant Analysis adalah materi penting dalam machine learning karena menghubungkan konsep reduksi dimensi dengan klasifikasi secara langsung. Dengan memahami mean kelas, scatter matrices, arah diskriminan, dan prosedur transformasi data baru yang benar, Anda akan lebih siap menggunakan LDA untuk membangun model klasifikasi yang lebih efisien dan lebih mudah dianalisis.