Home › Roadmap › Feature Engineering › Part 5

Imbalanced Data SMOTE

📘 অসম ক্লাস সমস্যার সমাধান।

🌐 Fix imbalanced classes.

🛠️ ফিচার ইঞ্জিনিয়ারিং🎚 Advanced📍 Part 5 / 6🧩 3 সাব-টপিক
🛠️
1

ধারণা · Concept

কী এবং কেন
📘 বাংলা ব্যাখ্যা:
অসম ক্লাস সমস্যার সমাধান।
🌐 English:
Fix imbalanced classes.

🗂 কোথায় পড়ে

৩. মেশিন লার্নিং → ফিচার ইঞ্জিনিয়ারিং → Imbalanced Data SMOTE

🎯 এই শাখার লক্ষ্য

Scale, encode, select and create features; pipelines

🧰 টুলস

scikit-learn

🪜

ধাপে ধাপে শিখুন · Step-by-step

কেন শিখবেন → কীভাবে শিখবেন → উদাহরণ → সাধারণ ভুল
💡 কেন গুরুত্বপূর্ণ?

বিরল ঘটনা (রোগ, জালিয়াতি) শনাক্তে মডেল সংখ্যাগরিষ্ঠ ক্লাস বলে দিয়েই "৯৯% সঠিক" হয়।

  1. ধাপ 1
    ক্লাস অনুপাত দেখুন: y.value_counts(normalize=True)
  2. ধাপ 2
    সঠিক মেট্রিক: Recall, F1, PR-AUC (Accuracy নয়)
  3. ধাপ 3
    class_weight="balanced" দিয়ে ভুলের শাস্তি সমন্বয়
  4. ধাপ 4
    রিস্যাম্পলিং: SMOTE (ট্রেনিং ডেটায় শুধু), undersampling; থ্রেশহোল্ড সমন্বয়

🧪 বাস্তব উদাহরণ

১০০০ জনে ১০ জন রোগী: "কেউ রোগী নয়" বললে accuracy ৯৯%, কিন্তু recall ০।

⚠️ সাধারণ ভুল

টেস্ট ডেটাতেও SMOTE প্রয়োগ।

🔑 মূল শব্দ (Key terms)

imbalanced dataSMOTEclass_weightundersamplingthreshold

3

সাব-টপিক ও বিস্তারিত · Sub-topics

টপিক → সাব-টপিক → সাব-সাব টপিক
5.1 সমস্যা5.1.1 ৯৫% বনাম ৫% ক্লাস
5.2 SMOTE5.2.1 সিন্থেটিক নমুনা
5.3 class_weight ও সঠিক মেট্রিক5.3.1 F15.3.2 PR-AUC
🎬

ভিডিও · Videos (বাংলা ও English)

ক্লিক করলে সাইটের ভেতরেই ফ্লোটিং প্লেয়ারে চলবে · ভিডিও MySQL-এ সংরক্ষিত

📺 আরও খুঁজুন

💻

হাতে-কলমে · Try it (Feature Engineering)

এডিট করে Run চাপুন · Ctrl+Enter
import pandas as pd
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression
df=pd.DataFrame({"age":[22,35,47,52,28,61,33,44],"income":[20,45,60,80,30,90,40,55],"city":list("DSDKSDKS"),"buy":[0,1,1,1,0,1,0,1]})
pre=ColumnTransformer([("num",StandardScaler(),["age","income"]),("cat",OneHotEncoder(),["city"])])
pipe=Pipeline([("pre",pre),("clf",LogisticRegression())]).fit(df.drop(columns="buy"),df.buy)
print("Train accuracy:",pipe.score(df.drop(columns="buy"),df.buy))
❓

সেল্ফ-চেক · Self check

1. “৯৫% বনাম ৫% ক্লাস” — এটি কোন সাব-টপিকের বর্ণনা?

2. “সিন্থেটিক নমুনা” — এটি কোন সাব-টপিকের বর্ণনা?

3. “F1, PR-AUC” — এটি কোন সাব-টপিকের বর্ণনা?

🔗

সংযুক্ত কনসেপ্ট · Connected concepts

← আগের টপিকFeature Creationপরের টপিক →Sklearn Pipeline
🎬 Video