ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
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 ဖြစ်ပါတယ်.
အတူတူ ကြည့်မယ်
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)}")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 ကို သုံးသင့်ပါတယ်.