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

Train/Test Split

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

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

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

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

Model ကို data အားလုံးနဲ့ train ပြီး, data အားလုံးနဲ့ပဲ evaluate လုပ်ရင် — model က training data ကို 'အလွတ်ကျက်' ထားနိုင်ပြီး, unseen data ပေါ်မှာ ဘယ်လောက် ကောင်းမလဲ ဆိုတာ မသိနိုင်ပါ (overfitting risk)။ Train/Test Split က data ကို ရာနှုန်းအလိုက် (ဥပမာ - 80/20) ခွဲပြီး, model ကို training set ချည်းသာ 'ပြသ' ပါတယ် — test set ကို model ကနေ လုံးဝ 'မမြင်ဘူး' ဖြစ်အောင် ခွဲထားပြီးမှ, evaluation အချိန်မှာသာ သုံးပါတယ် — 'စစ်ဆေးမေးခွန်းစာရွက်' ကို exam ကနေမှ ပြသလိုမျိုးပါ.

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

`from sklearn.model_selection import train_test_split; X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)` လို့ ရေးရင် — data ကို 80% training (`X_train`, `y_train`), 20% test (`X_test`, `y_test`) ခွဲပေးပါတယ်, `random_state=42` ကို fix ထားရင် run တိုင်း တူညီတဲ့ split ရအောင် reproducible ဖြစ်ပါတယ်.

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

python
from sklearn.model_selection import train_test_split

# X = features, y = target (what we want to predict)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

print(f"Training samples: {len(X_train)}")
print(f"Test samples: {len(X_test)}")
You should see
Training samples: 800
Test samples: 200

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

Sample dataset (Basic lesson 4 ကနေ) ကို `train_test_split()` ဖြင့် 80/20 ratio နဲ့ ခွဲကြည့်ပါ — training/test sample count ကို print ပြီး confirm လုပ်ကြည့်ပါ။

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

Time-series data (stock price, weather) အတွက် random split ကို သုံးလို့ မသင့်ပါ — 'အနာဂတ်' data ကို training ထဲ ပါမိရင် (time order ကို ချိုးဖောက်) data leakage ဖြစ်ပါလိမ့်မယ်, chronological split ကို သုံးသင့်ပါတယ်.

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

  • Test set size ကို too small (5%) ချထားခြင်း — test set ရဲ့ evaluation result က statistically reliable မဖြစ်နိုင်ပါ (sample အနည်းငယ်ကနေ conclusion ချရင်း)
  • `random_state` မထားခြင်း — run တိုင်း split ကွဲပြားလို့, result ကို reproduce/debug ရခက်ခဲသွားနိုင်ပါတယ်

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

Sample dataset (Basic lesson 4 ကနေ) ကို `train_test_split()` ဖြင့် 80/20 ratio နဲ့ ခွဲကြည့်ပါ — training/test sample count ကို print ပြီး confirm လုပ်ကြည့်ပါ။

You'll know it worked when: Training samples: 800 Test samples: 200

Train/Test Split | Thuta Learning