LDA Classifier

"Memaksimalkan Jarak, Meminimalkan Sebaran"

1. Apa itu LDA?

Linear Discriminant Analysis (LDA) adalah teknik statistik klasik. Tujuannya bukan cuma mencari garis pemisah (seperti Logistic Regression), tapi memproyeksikan data sedemikian rupa sehingga:

  1. Jarak antar rata-rata kelas (Mean) Sejauh mungkin.
  2. Sebaran data dalam satu kelas (Variance) Sekecil mungkin.

Hasilnya? Pemisahan kelas yang sangat tegas!

2. Visualisasi: Good vs Bad Projection

Proyeksi Buruk (Tumpang Tindih)
Campur Aduk
Proyeksi Bagus (LDA)
Tepisah Jelas!

3. Kapan Pakai LDA vs Logistic Regression?

Kondisi Pemenang
Data Terdistribusi Normal (Gaussian) LDA
Ukuran Sampel Kecil LDA (Lebih Stabil)
Kelas Terpisah Sangat Jauh LDA (LogReg bisa tidak stabil)
Data Berantakan / Outlier Banyak Logistic Regression

4. Implementasi Python (Scikit-Learn)

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
import numpy as np

# 1. Data
X = [[4, 2], [2, 4], [2, 3], [3, 6], [4, 4], [9, 10], [6, 8], [9, 5], [8, 7], [10, 8]]
y = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]

# 2. Model
clf = LinearDiscriminantAnalysis()
clf.fit(X, y)

# 3. Prediksi
print("Prediksi [3, 3]:", clf.predict([[3, 3]])) # 0

# Bonus: LDA juga bisa untuk Dimensionality Reduction!
# X_new = clf.transform(X) -> Mengubah 2 Fitur jadi 1 Fitur terbaik.