Skip to content
Linear Discriminant Analysis (LDA)

Linear Discriminant Analysis (LDA)

Linear Discriminant Analysis (LDA) adalah metode machine learning yang digunakan untuk reduksi dimensi sekaligus klasifikasi dengan mencari proyeksi data yang membuat kelas-kelas menjadi seoptimal mungkin untuk dipisahkan.

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:

Z=XW Z = XW

Keterangan variabel:

  • ZZ = representasi data baru pada ruang LDA,
  • XX = matriks data asli,
  • WW = 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.
Berbeda dengan PCA yang bersifat unsupervised, LDA adalah metode supervised karena menggunakan informasi kelas saat membentuk komponen baru.

LDA vs PCA

Linear Discriminant Analysis (LDA)

  • Menggunakan label kelas.
  • Fokus pada memisahkan kelas seoptimal mungkin.
  • Cocok untuk klasifikasi dan reduksi dimensi berbasis kelas.
  • Jumlah dimensi baru maksimum adalah c1c - 1, dengan cc adalah jumlah kelas.

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:

jarak antar kelaspenyebaran dalam kelas \frac{\text{jarak antar kelas}}{\text{penyebaran dalam kelas}}

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 SW1SBS_W^{-1} S_B 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 cc kelas. Mean untuk kelas ke-kk dinyatakan sebagai:

μk=1nkxiDkxi \mu_k = \frac{1}{n_k} \sum_{x_i \in D_k} x_i

Keterangan variabel:

  • μk\mu_k = mean kelas ke-kk,
  • nkn_k = jumlah data pada kelas ke-kk,
  • DkD_k = himpunan data pada kelas ke-kk,
  • xix_i = vektor fitur sampel ke-ii.

Mean keseluruhan dataset dinyatakan sebagai:

μ=1ni=1nxi \mu = \frac{1}{n} \sum_{i=1}^{n} x_i

Keterangan variabel:

  • μ\mu = mean keseluruhan data,
  • nn = jumlah seluruh sampel.

Within-Class Scatter Matrix

Within-class scatter matrix mengukur sebaran data di dalam masing-masing kelas.

SW=k=1cxiDk(xiμk)(xiμk)T S_W = \sum_{k=1}^{c} \sum_{x_i \in D_k} (x_i - \mu_k)(x_i - \mu_k)^T

Keterangan variabel:

  • SWS_W = within-class scatter matrix,
  • xiμkx_i - \mu_k = deviasi sampel terhadap mean kelasnya.

Interpretasi:

  • jika nilai SWS_W besar, artinya data dalam kelas cenderung menyebar,
  • jika nilai SWS_W 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.

SB=k=1cnk(μkμ)(μkμ)T S_B = \sum_{k=1}^{c} n_k (\mu_k - \mu)(\mu_k - \mu)^T

Keterangan variabel:

  • SBS_B = between-class scatter matrix,
  • nkn_k = jumlah data pada kelas ke-kk,
  • μkμ\mu_k - \mu = selisih mean kelas ke-kk terhadap mean keseluruhan.

Interpretasi:

  • jika nilai SBS_B besar, mean antar kelas saling berjauhan,
  • semakin besar SBS_B, semakin baik potensi pemisahan kelas.

Fungsi Objektif LDA

LDA memilih arah proyeksi ww yang memaksimalkan rasio berikut:

J(w)=wTSBwwTSWw J(w) = \frac{w^T S_B w}{w^T S_W w}

Keterangan variabel:

  • J(w)J(w) = fungsi objektif LDA,
  • ww = arah proyeksi,
  • wTSBww^T S_B w = sebaran antar kelas pada arah ww,
  • wTSWww^T S_W w = sebaran dalam kelas pada arah ww.

Arah terbaik diperoleh melalui penyelesaian masalah eigen:

SW1SBv=λv S_W^{-1} S_B v = \lambda v

Keterangan variabel:

  • vv = eigenvector atau arah discriminant,
  • λ\lambda = eigenvalue yang menunjukkan pentingnya arah tersebut.

Batas Dimensi Baru pada LDA

Jika dataset memiliki cc kelas, maka jumlah dimensi baru maksimum yang dapat dibentuk oleh LDA adalah:

maksimum dimensi baru=c1 \text{maksimum dimensi baru} = c - 1

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.

IDKelasX1X_1X2X_2
1A23
2A33
3A24
4A34
5B67
6B77
7B68
8B78

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

μA=[2+3+2+34,3+3+4+44] \mu_A = \left[ \frac{2+3+2+3}{4}, \frac{3+3+4+4}{4} \right] μA=[2.5,3.5] \mu_A = [2.5, 3.5]

Mean kelas B

μB=[6+7+6+74,7+7+8+84] \mu_B = \left[ \frac{6+7+6+7}{4}, \frac{7+7+8+8}{4} \right] μB=[6.5,7.5] \mu_B = [6.5, 7.5]

Langkah 2: Hitung Mean Keseluruhan

μ=[2+3+2+3+6+7+6+78,3+3+4+4+7+7+8+88] \mu = \left[ \frac{2+3+2+3+6+7+6+7}{8}, \frac{3+3+4+4+7+7+8+8}{8} \right] μ=[4.5,5.5] \mu = [4.5, 5.5]

Langkah 3: Hitung Within-Class Scatter Matrix

Scatter untuk kelas A

Hitung deviasi setiap data kelas A terhadap μA=[2.5,3.5]\mu_A = [2.5, 3.5]:

  • (2,3)(2.5,3.5)=(0.5,0.5)(2,3) - (2.5,3.5) = (-0.5,-0.5)
  • (3,3)(2.5,3.5)=(0.5,0.5)(3,3) - (2.5,3.5) = (0.5,-0.5)
  • (2,4)(2.5,3.5)=(0.5,0.5)(2,4) - (2.5,3.5) = (-0.5,0.5)
  • (3,4)(2.5,3.5)=(0.5,0.5)(3,4) - (2.5,3.5) = (0.5,0.5)

Jumlah outer product seluruh deviasi menghasilkan:

SA=[1001] S_A = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}

Scatter untuk kelas B

Hitung deviasi setiap data kelas B terhadap μB=[6.5,7.5]\mu_B = [6.5, 7.5]:

  • (6,7)(6.5,7.5)=(0.5,0.5)(6,7) - (6.5,7.5) = (-0.5,-0.5)
  • (7,7)(6.5,7.5)=(0.5,0.5)(7,7) - (6.5,7.5) = (0.5,-0.5)
  • (6,8)(6.5,7.5)=(0.5,0.5)(6,8) - (6.5,7.5) = (-0.5,0.5)
  • (7,8)(6.5,7.5)=(0.5,0.5)(7,8) - (6.5,7.5) = (0.5,0.5)

Jumlah outer product seluruh deviasi menghasilkan:

SB(class)=[1001] S_B^{(class)} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}

Within-class scatter total

SW=SA+SB(class) S_W = S_A + S_B^{(class)} SW=[1001]+[1001]=[2002] \begin{aligned} S_W &= \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} + \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \\ &= \begin{bmatrix} 2 & 0 \\ 0 & 2 \end{bmatrix} \end{aligned}

Langkah 4: Hitung Between-Class Scatter Matrix

Gunakan rumus:

SB=k=1cnk(μkμ)(μkμ)T S_B = \sum_{k=1}^{c} n_k (\mu_k - \mu)(\mu_k - \mu)^T

Kontribusi kelas A

μAμ=[2.5,3.5][4.5,5.5]=[2,2] \mu_A - \mu = [2.5,3.5] - [4.5,5.5] = [-2,-2] (2,2)T(2,2)[4444] \begin{aligned} (-2,-2)^T(-2,-2) &\rightarrow \begin{bmatrix} 4 & 4 \\ 4 & 4 \end{bmatrix} \end{aligned}

Karena jumlah data kelas A adalah 4, maka:

4[4444]=[16161616] \begin{aligned} 4 \begin{bmatrix} 4 & 4 \\ 4 & 4 \end{bmatrix} &= \begin{bmatrix} 16 & 16 \\ 16 & 16 \end{bmatrix} \end{aligned}

Kontribusi kelas B

μBμ=[6.5,7.5][4.5,5.5]=[2,2] \mu_B - \mu = [6.5,7.5] - [4.5,5.5] = [2,2] (2,2)T(2,2)[4444] \begin{aligned} (2,2)^T(2,2) &\rightarrow \begin{bmatrix} 4 & 4 \\ 4 & 4 \end{bmatrix} \end{aligned}

Karena jumlah data kelas B adalah 4, maka:

4[4444]=[16161616] \begin{aligned} 4 \begin{bmatrix} 4 & 4 \\ 4 & 4 \end{bmatrix} &= \begin{bmatrix} 16 & 16 \\ 16 & 16 \end{bmatrix} \end{aligned}

Between-class scatter total

SB=[16161616]+[16161616]=[32323232] \begin{aligned} S_B &= \begin{bmatrix} 16 & 16 \\ 16 & 16 \end{bmatrix} + \begin{bmatrix} 16 & 16 \\ 16 & 16 \end{bmatrix} \\ &= \begin{bmatrix} 32 & 32 \\ 32 & 32 \end{bmatrix} \end{aligned}

Langkah 5: Hitung Matriks SW1SBS_W^{-1} S_B

Karena:

SW=[2002] S_W = \begin{bmatrix} 2 & 0 \\ 0 & 2 \end{bmatrix}

maka inversenya adalah:

SW1=[120012] S_W^{-1} = \begin{bmatrix} \frac{1}{2} & 0 \\ 0 & \frac{1}{2} \end{bmatrix}

Selanjutnya:

SW1SB=[120012][32323232]=[16161616] \begin{aligned} S_W^{-1} S_B &= \begin{bmatrix} \frac{1}{2} & 0 \\ 0 & \frac{1}{2} \end{bmatrix} \begin{bmatrix} 32 & 32 \\ 32 & 32 \end{bmatrix} \\ &= \begin{bmatrix} 16 & 16 \\ 16 & 16 \end{bmatrix} \end{aligned}

Langkah 6: Hitung Eigenvalues

Cari eigenvalues dari matriks:

A=[16161616] A = \begin{bmatrix} 16 & 16 \\ 16 & 16 \end{bmatrix}

Gunakan persamaan karakteristik:

det(AλI)=0 \det(A - \lambda I) = 0 det[16λ161616λ]=0 \det \begin{bmatrix} 16-\lambda & 16 \\ 16 & 16-\lambda \end{bmatrix} = 0 (16λ)2162=0 (16-\lambda)^2 - 16^2 = 0 (16λ)2256=0 (16-\lambda)^2 - 256 = 0 λ232λ=0 \lambda^2 - 32\lambda = 0 λ(λ32)=0 \lambda(\lambda - 32) = 0

Sehingga diperoleh:

λ1=32,λ2=0 \lambda_1 = 32, \qquad \lambda_2 = 0

Eigenvalue terbesar adalah 3232, sehingga arah eigenvector yang bersesuaian menjadi LD1.

Langkah 7: Hitung Eigenvectors

Untuk λ1=32\lambda_1 = 32

(A32I)v=0 (A - 32I)v = 0 [163216161632][v1v2]=[00] \begin{aligned} \begin{bmatrix} 16-32 & 16 \\ 16 & 16-32 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \end{aligned} [16161616][v1v2]=[00] \begin{aligned} \begin{bmatrix} -16 & 16 \\ 16 & -16 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \end{aligned}

Diperoleh:

v1=v2 v_1 = v_2

Ambil bentuk sederhana:

v(1)=[11] v^{(1)} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}

Normalisasi:

v(1)=12+12=2 \left|v^{(1)}\right| = \sqrt{1^2 + 1^2} = \sqrt{2}

Sehingga:

w=12[11] w = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix}

Inilah arah proyeksi LD1.

Untuk λ2=0\lambda_2 = 0

Sebagai pelengkap, eigenvector kedua adalah arah ortogonal terhadap LD1, yaitu:

v(2)=[11] v^{(2)} = \begin{bmatrix} 1 \\ -1 \end{bmatrix}

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 μ=[4.5,5.5]\mu = [4.5, 5.5], lalu proyeksikan ke arah ww.

Rumus transformasi:

zi=(xiμ)Tw z_i = (x_i - \mu)^T w

Keterangan variabel:

  • ziz_i = nilai proyeksi data ke ruang LDA,
  • xix_i = sampel asli,
  • μ\mu = mean keseluruhan training data,
  • ww = arah linear discriminant.

Hasil proyeksi tiap data

Data kelas A

Untuk titik (2,3)(2,3):

(2,3)(4.5,5.5)=(2.5,2.5) (2,3) - (4.5,5.5) = (-2.5,-2.5) z1=(2.5,2.5)12[11]=523.536 \begin{aligned} z_1 &= (-2.5,-2.5) \cdot \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} \\ &= \frac{-5}{\sqrt{2}} \approx -3.536 \end{aligned}

Untuk titik (3,3)(3,3):

(3,3)(4.5,5.5)=(1.5,2.5) (3,3) - (4.5,5.5) = (-1.5,-2.5) z2=422.828 z_2 = \frac{-4}{\sqrt{2}} \approx -2.828

Untuk titik (2,4)(2,4):

(2,4)(4.5,5.5)=(2.5,1.5) (2,4) - (4.5,5.5) = (-2.5,-1.5) z3=422.828 z_3 = \frac{-4}{\sqrt{2}} \approx -2.828

Untuk titik (3,4)(3,4):

(3,4)(4.5,5.5)=(1.5,1.5) (3,4) - (4.5,5.5) = (-1.5,-1.5) z4=322.121 z_4 = \frac{-3}{\sqrt{2}} \approx -2.121

Data kelas B

Untuk titik (6,7)(6,7):

(6,7)(4.5,5.5)=(1.5,1.5) (6,7) - (4.5,5.5) = (1.5,1.5) z5=322.121 z_5 = \frac{3}{\sqrt{2}} \approx 2.121

Untuk titik (7,7)(7,7):

(7,7)(4.5,5.5)=(2.5,1.5) (7,7) - (4.5,5.5) = (2.5,1.5) z6=422.828 z_6 = \frac{4}{\sqrt{2}} \approx 2.828

Untuk titik (6,8)(6,8):

(6,8)(4.5,5.5)=(1.5,2.5) (6,8) - (4.5,5.5) = (1.5,2.5) z7=422.828 z_7 = \frac{4}{\sqrt{2}} \approx 2.828

Untuk titik (7,8)(7,8):

(7,8)(4.5,5.5)=(2.5,2.5) (7,8) - (4.5,5.5) = (2.5,2.5) z8=523.536 z_8 = \frac{5}{\sqrt{2}} \approx 3.536

Sehingga data pada ruang LDA adalah:

IDKelasLD1
1A-3.536
2A-2.828
3A-2.828
4A-2.121
5B2.121
6B2.828
7B2.828
8B3.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.

Saat ada data baru, jangan menghitung ulang LDA dari awal hanya dengan data baru tersebut. Gunakan parameter transformasi yang diperoleh dari data training.

Langkah yang benar adalah sebagai berikut.

Gunakan parameter dari data training

Simpan mean training μ\mu dan matriks proyeksi WW atau arah ww.

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:

znew=(xnewμ)TW z_{new} = (x_{new} - \mu)^T W

Jika hanya ada satu komponen, maka cukup gunakan ww.

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:

xnew=(4,5) x_{new} = (4,5)

Gunakan mean training:

μ=(4.5,5.5) \mu = (4.5, 5.5)

Maka:

xnewμ=(0.5,0.5) x_{new} - \mu = (-0.5,-0.5)

Proyeksikan ke LD1:

znew=(0.5,0.5)12[11]=120.707 \begin{aligned} z_{new} &= (-0.5,-0.5) \cdot \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 1 \end{bmatrix} \\ &= \frac{-1}{\sqrt{2}} \approx -0.707 \end{aligned}

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 c1c - 1.

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:
31=2 3 - 1 = 2

Karena itu, penggunaan n_components=2 pada dataset Iris sudah sesuai.

Ringkasan

LDA bekerja dengan memaksimalkan separasi antar kelas dan meminimalkan penyebaran dalam kelas. Langkah utamanya adalah menghitung mean tiap kelas, menghitung SWS_W dan SBS_B, menyelesaikan masalah eigen pada SW1SBS_W^{-1} S_B, memilih eigenvector terbaik, lalu memproyeksikan data ke ruang baru yang lebih diskriminatif.

Poin utama yang perlu diingat:

  • LDA adalah metode supervised.
  • Fokus utama LDA adalah separasi kelas, bukan sekadar varians.
  • Dalam dataset dengan cc kelas, dimensi baru maksimum adalah c1c - 1.
  • 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.