ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
Curse of Dimensionality ဆိုတာ feature (dimension) အရေအတွက် တိုးလာတာနဲ့အမျှ, model training ခက်ခဲလာခြင်း (data point တွေ 'sparse' ဖြစ်လာလို့) ကို ခေါ်ပါတယ် — feature 100+ ရှိတဲ့ dataset ကို visualize (2D/3D graph) လုပ်ဖို့လည်း မဖြစ်နိုင်ပါ။ PCA (Principal Component Analysis) ကတော့ feature (column) အများကြီးကို information ကို 'အများဆုံး ထိန်းသိမ်းထားနိုင်တဲ့' feature အနည်းငယ် (Principal Component) ဆီ compress လုပ်ပေးတဲ့ technique ပါ — feature 100 ခုကို Principal Component 10 ခု (information 95%+ ထိန်းသိမ်းထားနိုင်တဲ့) ဆီ လျှော့ချနိုင်ရင် training speed/visualization ၂ ခုလုံးကို ကူညီပေးပါတယ်.
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
`from sklearn.decomposition import PCA; pca = PCA(n_components=2); X_reduced = pca.fit_transform(X)` လို့ ရေးရင် — feature 20 ခုပါတဲ့ dataset ကို Principal Component ၂ ခုဆီ compress လုပ်ပေးပါတယ်, `matplotlib` ဖြင့် 2D scatter plot အနေနဲ့ visualize လုပ်နိုင်ပါတယ် — `pca.explained_variance_ratio_` ကို ကြည့်ရင် Principal Component တစ်ခုချင်းစီက original information ရဲ့ ဘယ်နှစ်ရာနှုန်း ထိန်းသိမ်းထားလဲ ကြည့်နိုင်ပါတယ်.
အတူတူ ကြည့်မယ်
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)
print(f"Explained variance ratio: {pca.explained_variance_ratio_}")
print(f"Total variance retained: {sum(pca.explained_variance_ratio_):.2%}")
plt.scatter(X_reduced[:, 0], X_reduced[:, 1])
plt.show()Explained variance ratio: [0.62 0.24]
Total variance retained: 86.00%၅ မိနစ် စမ်းကြည့်
Feature 5+ ခုပါတဲ့ sample dataset ကို PCA ဖြင့် 2 component ဆီ compress ကြည့်ပြီး, `explained_variance_ratio_` ကို ကြည့်ကာ information ဘယ်လောက် ထိန်းသိမ်းထားလဲ ရေးကြည့်ပါ။
သတိလေးတစ်ချက်
PCA ကို classification/regression accuracy ကို 'တိုးစေမယ်' လို့ ယူဆမထားပါနှင့် — PCA ရဲ့ ရည်ရွယ်ချက်က dimension လျှော့ချ (speed/visualization) ဖြစ်ပြီး, information တစ်ချို့ ဆုံးရှုံးသွားလို့ accuracy ကျဆင်းနိုင်ခြေလည်း ရှိပါတယ်.