Thuta Learning
ရှာဖွေရန်
IntermediateData & Databasesintermediate

Cross-Validation

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Cross-Validation ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • ကိုယ်တိုင် scikit-learn code ကို run ကြည့်တတ်မယ်
  • Real project ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

K-Fold Cross-Validation ဆိုတာ data ကို K ပိုင်း (fold) ခွဲပြီး, iteration K ကြိမ် run ခြင်းပါ — round တစ်ခုစီမှာ fold တစ်ခုကို test set အဖြစ် ထား, ကျန် fold (K-1) ကို training data အဖြစ် သုံးပါတယ် — ဒီလို K ကြိမ် ထပ်ခါထပ်ခါ run ပြီး, average performance ကို final result အဖြစ် ယူပါတယ် — single train/test split ထက် reliable ဖြစ်ပါတယ် (data အားလုံးက training/test ၂ ခုစလုံးမှာ တစ်ကြိမ်စီ ပါဝင်ရလို့).

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

`from sklearn.model_selection import cross_val_score; scores = cross_val_score(model, X, y, cv=5)` လို့ ရေးရင် — data ကို 5-fold ခွဲပြီး, model ကို ၅ ကြိမ် train/test run ကာ, `scores` array ထဲမှာ accuracy result ၅ ခု ရနိုင်ပါတယ် — `scores.mean()` (average performance) နဲ့ `scores.std()` (result ဘယ်လောက် consistent လဲ, standard deviation) ကို ကြည့်ရင် model ရဲ့ real-world reliability ကို ပိုနားလည်နိုင်ပါတယ်.

အတူတူ ကြည့်မယ်

python
from sklearn.model_selection import cross_val_score

scores = cross_val_score(model, X, y, cv=5)
print(f"Scores per fold: {scores}")
print(f"Mean accuracy: {scores.mean():.2f} (+/- {scores.std():.2f})")
You should see
Scores per fold: [0.84 0.87 0.82 0.86 0.85]
Mean accuracy: 0.85 (+/- 0.02)

၅ မိနစ် စမ်းကြည့်

Model (Intermediate lesson ကနေ ရွေးချယ်ပါ) ကို `cross_val_score(cv=5)` ဖြင့် evaluate ကြည့်ပြီး, single train/test split ရဲ့ result နဲ့ cross-validation ရဲ့ average result ကို compare ကြည့်ပါ။

သတိလေးတစ်ချက်

Cross-Validation result ရဲ့ standard deviation ကြီးမားနေရင် (fold တစ်ခုနဲ့တစ်ခု accuracy ကွာခြားချက် ကြီးနေရင်) — model က unstable/inconsistent ဖြစ်နေတယ်ဆိုတဲ့ signal ဖြစ်ပါတယ်, data quality ဒါမှမဟုတ် model complexity ကို ပြန်စစ်ဆေးသင့်ပါတယ်.

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Cross-Validation ကို run ပြီးရင် final model ကို data အားလုံးနဲ့ ပြန်train ဖို့ မေ့ခြင်း — CV က model ရဲ့ 'reliability estimate' ကိုသာ ပေးတာပါ, final deployment model ကို data အားလုံးနဲ့ train ရပါမယ်
  • K value ကို too large (K=50) ချထားခြင်း — fold တစ်ခုချင်းစီရဲ့ data size သေးငယ်လွန်းသွားပြီး, training time ကလည်း K ကြိမ် ကြာသွားပါတယ်

အခု ကိုယ်တိုင် စမ်းကြည့်

Model (Intermediate lesson ကနေ ရွေးချယ်ပါ) ကို `cross_val_score(cv=5)` ဖြင့် evaluate ကြည့်ပြီး, single train/test split ရဲ့ result နဲ့ cross-validation ရဲ့ average result ကို compare ကြည့်ပါ။

You'll know it worked when: Scores per fold: [0.84 0.87 0.82 0.86 0.85] Mean accuracy: 0.85 (+/- 0.02)

Cross-Validation | Thuta Learning