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

Overfitting & Regularization

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

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

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

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

Overfitting ဆိုတာ model က training data ရဲ့ noise/detail ကိုပါ 'memorize' ထားလို့, training accuracy တော့ အလွန်မြင့်ပေမယ့် (99%+), test accuracy က ကျဆင်း (70%) ဖြစ်တဲ့ symptom ပါ — model ရဲ့ complexity က data ရဲ့ actual pattern ထက် ပိုကြီးလွန်းနေတာ ဖော်ပြပါတယ်။ Underfitting ကတော့ ဆန့်ကျင်ဘက် — model က ရိုးရှင်းလွန်းလို့ training data ပေါ်မှာတောင် performance ညံ့တာပါ။ Regularization (L1/L2 penalty) ကတော့ model ရဲ့ complexity ကို 'punishment' ပေးပြီး, overfitting ကို ကာကွယ်ဖို့ technique ပါ — coefficient ကို too large ဖြစ်တာကို penalty ပေးလို့, model က simpler pattern ကိုသာ prioritize လုပ်ဖို့ 'force' လုပ်ပေးပါတယ်.

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

Training accuracy 98%, Test accuracy 65% ဆိုရင် — classic overfitting signal ပါ, `Ridge`/`Lasso` (L2/L1 regularization ပါတဲ့ Linear Regression variant) ကို `from sklearn.linear_model import Ridge; model = Ridge(alpha=1.0)` ဆိုပြီး သုံးရင် — `alpha` (regularization strength) ကို တိုးလိုက်ရင် model complexity ကို ပိုကန့်သတ်ပြီး, overfitting ကို ဖြေရှင်းနိုင်ပါတယ်.

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

python
from sklearn.linear_model import Ridge, LinearRegression

# Without regularization — may overfit with many features
model_plain = LinearRegression()
model_plain.fit(X_train, y_train)

# With L2 regularization (Ridge) — penalizes large coefficients
model_ridge = Ridge(alpha=1.0)
model_ridge.fit(X_train, y_train)

print(f"Plain - train: {model_plain.score(X_train, y_train):.2f}, test: {model_plain.score(X_test, y_test):.2f}")
print(f"Ridge - train: {model_ridge.score(X_train, y_train):.2f}, test: {model_ridge.score(X_test, y_test):.2f}")
You should see
Plain - train: 0.98, test: 0.65
Ridge - train: 0.91, test: 0.86

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

Overfitting-prone dataset (feature အများကြီး, sample အနည်းငယ်) ကို LinearRegression vs Ridge ဖြင့် train/test score compare ကြည့်ပါ — Ridge ရဲ့ regularization effect ကို directly observe ကြည့်ပါ။

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

Overfitting ကို ဖြေရှင်းဖို့ 'data ပိုစုဆောင်းခြင်း' က often regularization ထက် ပိုထိရောက်တဲ့ solution ဖြစ်နိုင်ပါတယ် — data အနည်းငယ်နဲ့ complex model သုံးရင် overfitting ဖြစ်ဖို့ များပါတယ်, data quantity/quality ကို ဦးစွာ စဉ်းစားသင့်ပါတယ်.

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

  • Training accuracy တစ်ခုတည်းကို ကြည့်ပြီး model ကောင်း/မကောင်း ဆုံးဖြတ်ခြင်း — train/test accuracy ၂ ခုစလုံးကို compare မှသာ overfitting ကို detect နိုင်ပါတယ်
  • Regularization `alpha` ကို too large ချထားခြင်း — model ကို underfitting ဆီ push ဖြစ်စေနိုင်ပါတယ် (regularization ကလည်း balance လိုအပ်ပါတယ်)

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

Overfitting-prone dataset (feature အများကြီး, sample အနည်းငယ်) ကို LinearRegression vs Ridge ဖြင့် train/test score compare ကြည့်ပါ — Ridge ရဲ့ regularization effect ကို directly observe ကြည့်ပါ။

You'll know it worked when: Plain - train: 0.98, test: 0.65 Ridge - train: 0.91, test: 0.86

Overfitting & Regularization | Thuta Learning