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

Logistic Regression (Classification)

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

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

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

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

Regression ရဲ့ output က continuous number ပါ (house price $250,000) — Classification ရဲ့ output ကတော့ category/class ပါ (spam ဒါမှမဟုတ် not-spam, ရောဂါရှိ/မရှိ)။ 'Logistic Regression' ဆိုတဲ့ နာမည်ထဲမှာ 'Regression' ပါပေမယ့် classification algorithm ပါ (historical naming) — Sigmoid function ကို သုံးပြီး, output ကို 0-1 ကြား probability အဖြစ် ပြောင်းလဲပေးပါတယ် (probability > 0.5 ဆိုရင် Class 1, ≤ 0.5 ဆိုရင် Class 0 ဆိုတာမျိုး threshold ချထားလို့ရပါတယ်).

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

Email spam classification (Basic lesson 1 ရဲ့ ဥပမာ) ကို Logistic Regression ဖြင့် build ရင် — `from sklearn.linear_model import LogisticRegression; model = LogisticRegression(); model.fit(X_train, y_train)` လို့ train ပြီး, `model.predict(X_test)` က Class (0=not-spam, 1=spam) ကို ပြန်ပေးပါတယ်, `model.predict_proba(X_test)` ကတော့ probability (ဥပမာ - 87% spam ဖြစ်နိုင်ခြေ) ကို ပြန်ပေးပါတယ်.

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

python
from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(X_train, y_train)

# Predicted class (0 or 1)
predictions = model.predict(X_test)

# Predicted probability for each class
probabilities = model.predict_proba(X_test)
print(probabilities[:3])
# [[0.13, 0.87], [0.92, 0.08], [0.45, 0.55]]
# column 0 = P(not spam), column 1 = P(spam)
You should see
[[0.13 0.87]
 [0.92 0.08]
 [0.45 0.55]]

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

Binary classification sample dataset (spam/not-spam simulate data) ကို Logistic Regression ဖြင့် train ကြည့်ပြီး, `predict()` နှင့် `predict_proba()` ရလဒ်ကို နှိုင်းယှဉ် ကြည့်ကြည့်ပါ။

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

Class imbalance (spam data 5%, not-spam data 95%) ရှိတဲ့ dataset ကို Logistic Regression default setting နဲ့ train ရင် — model က 'အားလုံး not-spam' လို့ predict ချရုံနဲ့ 95% accuracy ရနိုင်ပေမယ့်, spam ကို တစ်ခုမှ မဖမ်းနိုင်ဘူးဆိုတာ ဖြစ်နိုင်ပါတယ် — accuracy တစ်ခုတည်းကို မယုံပါနှင့် (Intermediate chapter ရဲ့ metric lesson ကို ဆက်လေ့လာပါ)။

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

  • Logistic Regression ကို regression algorithm (continuous prediction) အတွက်ပါ သုံးမိသင့်ဟန် ထင်ခြင်း — classification algorithm ချည်းသာ ဖြစ်ပါတယ်
  • 0.5 threshold ကို scenario အားလုံးအတွက် default အဖြစ် blindly သုံးခြင်း — false positive/false negative cost မတူတဲ့ scenario (ဥပမာ - ကင်ဆာစစ်ဆေးမှု) မှာ threshold ကို adjust လုပ်သင့်ပါတယ်

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

Binary classification sample dataset (spam/not-spam simulate data) ကို Logistic Regression ဖြင့် train ကြည့်ပြီး, `predict()` နှင့် `predict_proba()` ရလဒ်ကို နှိုင်းယှဉ် ကြည့်ကြည့်ပါ။

You'll know it worked when: [[0.13 0.87] [0.92 0.08] [0.45 0.55]]

Logistic Regression (Classification) | Thuta Learning