Home »
Blog »
AI/ML Engineer সিরিজ » Series 05 » Episode 01
Machine Learning আসলে কী? Computer কীভাবে নিজে নিজে pattern খুঁজে পায়?
features, labels, train/val/test, inference (Series 05, Episode 01)
🟢 BEGINNER
Series 05 — Classical Machine Learning
Episode 01 / 11
📑 এই পর্বে যা যা আছে
- ১. গল্প: Rahim-এর সেই "if-else" সমস্যা
- ২. আসল সমস্যা: নিয়ম হাতে লেখা যখন অসম্ভব
- ৩. Machine Learning আসলে কী? (৩ স্তরে)
- ৪. Traditional Programming বনাম Machine Learning
- ৫. মূল শব্দভাণ্ডার: Features, Labels, Dataset
- ৬. Supervised, Unsupervised, Reinforcement — তিন ধরন
- ৭. Train / Validation / Test — ডেটা কেন ভাগ করি
- ৮. Training বনাম Inference (একদম আলাদা দুই জিনিস)
- ৯. প্রথম কোড: scikit-learn দিয়ে ছোট experiment
- ১০. বাংলাদেশের বাস্তব উদাহরণ
- ১১. Boss Question
- ১২. Job Requirement Decoder
- ১৩. সাধারণ ভুল
- ১৪. Interview Prep
- ১৫. হাতে-কলমে
- ১৬. Project Connection ও সারসংক্ষেপ
🧩 ১. গল্প: Rahim-এর সেই "if-else" সমস্যা
Rahim একটা e-commerce কোম্পানিতে junior developer। একদিন তার Boss এসে বলল —
"আমাদের কোন customer পরের মাসে কেনাকাটা করবে আর কে করবে না, সেটা আগেভাগে জানতে চাই।
যারা করবে না, তাদের একটা discount SMS পাঠাব।"
Rahim তো software developer, সে যা জানে তাই করল — if-else লিখতে বসল:
if customer.last_order_days > 30:
will_buy = False
elif customer.total_orders > 10:
will_buy = True
elif customer.age < 25 and customer.city == "Dhaka":
will_buy = True
else:
will_buy = ... # এখানেই Rahim আটকে গেল
Rahim পাশের ডেস্কের ML Engineer Arif-কে ডাকল:
"ভাই, নিয়মগুলো তো হাজারটা হয়ে যাচ্ছে! বয়স, শহর, শেষ অর্ডার, কতগুলো অর্ডার, কোন product...
প্রতিটা combination-এর জন্য আলাদা if লিখতে গেলে তো জীবন শেষ। আর নতুন pattern এলে?"
Arif হাসল: "তুই তো নিজেই নিজের সমস্যাটা বলে ফেললি। এত নিয়ম হাতে লেখা অসম্ভব।
এখানেই Machine Learning। তুই নিয়ম লিখবি না — computer পুরনো data দেখে
নিয়মগুলো নিজে বের করবে।"
❓ ২. আসল সমস্যা: নিয়ম হাতে লেখা যখন অসম্ভব
কিছু সমস্যা আছে যেখানে নিয়ম সোজা — "order ৫০০০ টাকার বেশি হলে free delivery"। এখানে ML লাগে না,
সাধারণ if যথেষ্ট। কিন্তু Rahim-এর সমস্যায় নিয়মগুলো:
- অনেক বেশি — ডজন ডজন factor, প্রতিটার হাজার combination।
- অস্পষ্ট — আসলে কোন factor কতটা গুরুত্বপূর্ণ, মানুষ নিশ্চিত জানে না।
- পরিবর্তনশীল — গত ঈদে যে pattern কাজ করেছে, এই ঈদে নাও করতে পারে।
যখন সমস্যার নিয়ম (rules) মানুষের পক্ষে স্পষ্টভাবে লিখে দেওয়া কঠিন, কিন্তু ঘটনার
ঐতিহাসিক data আছে — তখনই Machine Learning-এর জায়গা। ML নিয়ম হাতে নেয় না,
data থেকে নিয়ম শিখে নেয়।
🧠 ৩. Machine Learning আসলে কী? (৩ স্তরে)
Level 1 — সহজ intuition:
একটা বাচ্চাকে ১০০টা আম আর ১০০টা কমলা দেখিয়ে বললেন "এটা আম, এটা কমলা"। কিছুক্ষণ পর নতুন একটা ফল
দেখালে সে নিজেই বলে দেবে কোনটা। কেউ তাকে "আম মানে হলুদ ও লম্বাটে" এমন নিয়ম শেখায়নি —
সে উদাহরণ দেখে নিজে pattern ধরেছে। ML ঠিক এটাই করে।
Level 2 — technical:
Machine Learning হলো এমন algorithm-এর সমষ্টি যা data (input) এবং তার সঠিক উত্তর (output)
দেখে একটা function approximate করে — যাতে ভবিষ্যতে নতুন input পেলে output predict করা যায়।
গণিতে বললে: আমরা এমন একটা f খুঁজছি যেন f(features) ≈ label হয়, শুধু training
উদাহরণে নয়, নতুন unseen data-তেও।
Level 3 — Engineer perspective:
একজন ML Engineer হিসেবে আপনি নিয়ম লেখেন না; আপনি ঠিক করেন — কোন data লাগবে, কোন feature দরকার,
কোন algorithm উপযুক্ত, model কতটা ভালো হলো (evaluation), এবং সেই model production-এ কীভাবে
prediction দেবে। মনে রাখবেন: model ≠ production system — একটা trained model
একটা .pkl file মাত্র; সেটাকে API, monitoring, retraining দিয়ে system বানানো আলাদা কাজ
(Series 09-এ দেখব)।
জরুরি distinction: ML হলো AI-এর একটা subset। সব ML-ই AI, কিন্তু সব AI মানেই ML নয়
(rule-based system-ও AI)। আর Deep Learning হলো ML-এর একটা subset। এই সিরিজে (Series 05) আমরা
classical ML শিখছি — Deep Learning নয়, সেটা Series 06-এ।
🔄 ৪. Traditional Programming বনাম Machine Learning
Traditional Programming
Data + Rules → Program → Output
মানুষ নিয়ম (rules) লেখে। Rahim-এর if-else এখানে পড়ে।
Machine Learning
Data + Output → ML Training → Rules (Model)
Machine উদাহরণ দেখে নিয়ম (model) নিজে বের করে।
পার্থক্যটা মৌলিক: traditional-এ আউটপুট বানাতে নিয়ম দরকার; ML-এ নিয়ম বানাতে আউটপুট (উদাহরণ) দরকার।
তাই ML-এর প্রথম শর্ত — ভালো labeled data।
📚 ৫. মূল শব্দভাণ্ডার: Features, Labels, Dataset
Rahim-এর customer data একটা টেবিল হিসেবে ভাবুন:
| age | city | total_orders | last_order_days | will_buy (label) |
| 24 | Dhaka | 12 | 10 | Yes |
| 41 | Khulna | 2 | 60 | No |
| 30 | Dhaka | 7 | 25 | Yes |
- Feature (X): input column-গুলো —
age, city, total_orders, last_order_days। এগুলোই model-এর "ইনপুট"।
- Label / Target (y): যেটা predict করতে চাই —
will_buy।
- Sample / Row: একজন customer = একটা উদাহরণ।
- Dataset: সব row মিলে পুরো টেবিল।
Features (X) Label (y)
┌───────────────────────────────┐ ┌───────────┐
│ age city orders last_days │ → │ will_buy │
│ 24 Dhaka 12 10 │ → │ Yes │
│ 41 Khulna 2 60 │ → │ No │
└───────────────────────────────┘ └───────────┘
model শেখে: X → y
🗂️ ৬. Supervised, Unsupervised, Reinforcement — তিন ধরন
| ধরন | label আছে? | কাজ | উদাহরণ |
| Supervised | হ্যাঁ | X থেকে y predict | churn prediction, house price, spam detection |
| Unsupervised | না | data-র লুকানো গঠন খোঁজা | customer segmentation (K-Means), PCA |
| Reinforcement | না (reward) | trial-error দিয়ে শেখা | game AI, robotics |
এই সিরিজের বেশিরভাগ Supervised Learning (E02–E08, E10–E11), আর E09-এ
Unsupervised (K-Means, PCA)। Reinforcement Learning junior চাকরির জন্য
Learn Later — এখন শুধু নাম জানলেই চলবে।
Supervised-এর দুই ভাগ:
Regression = সংখ্যা predict (house price কত টাকা?),
Classification = category predict (churn করবে হ্যাঁ/না?)। এই পার্থক্যটা মাথায় রাখুন —
পরের episode-গুলো এই দুই ভাগ ধরেই এগোবে।
✂️ ৭. Train / Validation / Test — ডেটা কেন ভাগ করি
একটা পরীক্ষার আগে যদি ছাত্রকে হুবহু পরীক্ষার প্রশ্নই মুখস্থ করিয়ে দেন, তাহলে সে ১০০ পাবে —
কিন্তু সে কি আসলে শিখেছে? না। ML-এও একই ফাঁদ। তাই আমরা data ভাগ করি:
পুরো Dataset (১০০%)
├── Train set (~৭০%) → model এখানে শেখে
├── Validation (~১৫%) → hyperparameter টিউন / model বাছাই
└── Test set (~১৫%) → চূড়ান্ত পরীক্ষা (একবারই ছোঁয়া)
সোনার নিয়ম: Test set কখনো training বা tuning-এ ব্যবহার করবেন না। ওটা "final exam" —
একবারই দেখবেন। না হলে আপনি নিজেকেই ঠকাবেন এবং production-এ model খারাপ করবে।
⚙️ ৮. Training বনাম Inference (একদম আলাদা দুই জিনিস)
Training
পুরনো labeled data দিয়ে model-কে "শেখানো"। ভারী কাজ, একবার/মাঝেমধ্যে হয়। ফলাফল: একটা trained model।
Inference
trained model দিয়ে নতুন data-তে prediction করা। হালকা কাজ, বারবার হয় (প্রতিটা request-এ)।
Production-এ latency, cost — সবই মূলত inference নিয়ে। এই পার্থক্যটা interview-তে প্রায়ই আসে, আর
Series 09-এ যখন model deploy করব তখন এটাই মূল ভিত্তি। Training ≠ Inference — মনে রাখুন।
💻 ৯. প্রথম কোড: scikit-learn দিয়ে ছোট experiment
কেন scikit-learn? কারণ classical ML-এর জন্য এটাই industry-standard Python library —
সব algorithm একই সরল API (fit/predict) দিয়ে চলে, বাংলাদেশের প্রায় সব
ML/Data Science JD-তে এর নাম থাকে। চলুন ধারণাগুলো কোডে দেখি:
# pip install scikit-learn pandas
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# ১. ছোট dataset (বাস্তবে CSV/DB থেকে আসবে)
data = pd.DataFrame({
"age": [24, 41, 30, 22, 55, 34, 28, 47],
"total_orders": [12, 2, 7, 9, 1, 8, 6, 3],
"last_order_days":[10, 60, 25, 12, 90, 20, 30, 75],
"will_buy": [1, 0, 1, 1, 0, 1, 1, 0], # 1=Yes, 0=No
})
# ২. Features (X) আর Label (y) আলাদা করা
X = data[["age", "total_orders", "last_order_days"]]
y = data["will_buy"]
# ৩. Train/Test ভাগ (random_state = reproducibility-র জন্য)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.25, random_state=42
)
# ৪. Training — model নিয়মগুলো নিজে শিখছে
model = DecisionTreeClassifier(max_depth=3, random_state=42)
model.fit(X_train, y_train) # <-- এখানেই "শেখা"
# ৫. Inference — নতুন data-তে prediction
preds = model.predict(X_test)
print("Test accuracy:", accuracy_score(y_test, preds))
# ৬. একদম নতুন একজন customer
new_customer = [[27, 10, 15]] # age, orders, last_days
print("নতুন customer কিনবে?", model.predict(new_customer))
লক্ষ্য করুন — আমরা একটাও if-else লিখিনি! model.fit() data দেখে নিজে
নিয়ম বের করেছে, আর model.predict() নতুন customer-এ সেটা প্রয়োগ করেছে।
এটাই traditional programming থেকে ML-এর মূল paradigm shift।
🔬 ১০. Experiment ও বাংলাদেশের বাস্তব উদাহরণ
নিজে চেষ্টা করুন: উপরের কোডে max_depth ৩ থেকে ১ করুন, তারপর ১০ করুন।
accuracy কীভাবে বদলায় খেয়াল করুন — এটাই আপনাকে পরে overfitting/underfitting (E08) বোঝাবে।
- bKash / Nagad: transaction pattern দেখে fraud detection (classification)।
- Daraz: "আপনার জন্য" product recommendation এবং কে return করবে তার prediction।
- GP / Robi: কোন subscriber churn করবে (চলে যাবে) তার prediction — ঠিক Rahim-এর সমস্যা।
- কৃষি-tech startup: আবহাওয়া ও মাটির data দিয়ে ফলন (yield) prediction (regression)।
💼 ১১. Boss Question
Boss: "ঠিক আছে, computer নিজে শেখে বুঝলাম। কিন্তু এই ML জিনিসটা আমার business-এ টাকা বানাবে কীভাবে?"
উত্তর: Rahim-এর churn prediction দিয়েই ভাবুন। ১ লাখ customer-এর মধ্যে যদি model
আগেভাগে বলে দিতে পারে কোন ৫,০০০ জন চলে যাওয়ার ঝুঁকিতে, আপনি শুধু তাদেরই targeted offer পাঠাবেন —
সবাইকে নয়। ফলে marketing খরচ কমে, retention বাড়ে। এক লাইনে business value:
"সঠিক সিদ্ধান্ত, সঠিক সময়ে, কম খরচে, বড় স্কেলে।" এটাই ML বিক্রি করে —
magic নয়, better decisions।
🔎 ১২. Job Requirement Decoder
JD-তে দেখবেন: "Solid understanding of core Machine Learning concepts (supervised/unsupervised learning, model training and evaluation)."
১. কী বোঝায়? আপনি ML-এর মৌলিক workflow ও শব্দভাণ্ডার (features, labels, train/test, supervised vs unsupervised) পরিষ্কার বোঝেন।
২. কেন চায়? যাতে সমস্যা শুনে বুঝতে পারেন এটা regression না classification, এবং সঠিক পথে এগোন।
৩. কোন সমস্যা সমাধান করে? ভুল সমস্যায় ML লাগানো বা ভুল ধরন বাছাই — এসব এড়ায়।
৪. junior-এর কী জানা লাগে? এই episode-এর সব ধারণা + scikit-learn-এ একটা fit/predict চালাতে পারা।
৫. এখনই কী master লাগবে না? Reinforcement Learning, distributed training, gradient-এর গণিত — এগুলো পরে।
৬. GitHub-এ কীভাবে দেখাবে? একটা ছোট notebook: data → split → train → evaluate, README-তে সহজ ভাষায় ব্যাখ্যা।
৭. Interview-তে কী জিজ্ঞেস করতে পারে? "Supervised vs unsupervised?", "Train/test split কেন?", "Regression vs classification?"
⚠️ ১৩. সাধারণ ভুল
ভুল ১: Test set-এ model টিউন করা → ঠিক: test শুধু final exam, একবার।
ভুল ২: "সব সমস্যায় ML লাগবে" → ঠিক: নিয়ম স্পষ্ট হলে simple if-ই ভালো।
ভুল ৩: "accuracy বেশি মানেই ভালো model" → ঠিক: imbalanced data-তে এটা মিথ্যা বলে (E05-এ দেখব)।
ভুল ৪: Training আর Inference গুলিয়ে ফেলা → এই দুটো আলাদা phase, আলাদা খরচ।
ভুল ৫: খারাপ/কম data দিয়ে ভালো model আশা করা → "garbage in, garbage out"।
🎤 ১৪. Interview Prep
প্র: Machine Learning কী, এক লাইনে?
উ: Data থেকে pattern শিখে নতুন data-তে prediction করার পদ্ধতি — নিয়ম হাতে না লিখে।
প্র: Supervised আর Unsupervised-এর পার্থক্য?
উ: Supervised-এ label থাকে (X→y শেখে); unsupervised-এ label নেই, data-র গঠন খোঁজে (যেমন clustering)।
প্র: Train/validation/test কেন দরকার?
উ: Model যাতে মুখস্থ না করে সত্যিকারের generalize করে; test দিয়ে unseen data-তে honest performance মাপা যায়।
প্র: Regression আর Classification?
উ: Regression সংখ্যা predict করে (দাম), classification category predict করে (হ্যাঁ/না)।
প্র: Training আর Inference আলাদা কীভাবে?
উ: Training-এ model শেখে (ভারী, কম-বার); inference-এ trained model prediction দেয় (হালকা, বারবার)।
✍️ ১৫. হাতে-কলমে
নিচের ৪টা সমস্যাকে ভাগ করুন — Regression / Classification / Unsupervised / "ML লাগে না":
১. একটা ফ্ল্যাটের মাসিক ভাড়া কত হবে অনুমান করা।
২. একটা email spam কিনা বলা।
৩. ১০ হাজার customer-কে আচরণ অনুযায়ী কয়েকটা দলে ভাগ করা (label নেই)।
৪. "bill > 1000 হলে 5% discount দাও।"
(উত্তর: ১→Regression, ২→Classification, ৩→Unsupervised, ৪→ML লাগে না)
তারপর উপরের scikit-learn কোডটা নিজের মেশিনে চালান আর max_depth বদলে দেখুন।
🚀 ১৬. Project Connection ও সারসংক্ষেপ
আমাদের flagship project "Bangladesh Tech Career Assistant" এতদিন ছিল data analyzer (V2)।
এই সিরিজে সেটা ML-চালিত হবে (V3): একটা job description দিলে model বলবে এটা junior না senior role,
বা কোন skill-গুলো লাগবে। কিন্তু কোড লেখার আগে আজকের এই মানসিক framework — এটা কি supervised?
regression না classification? কোন feature, কোন label? — সেটাই ভিত্তি।
এই Episode-এ শিখলাম:
✓ ML = data থেকে নিয়ম শেখা, নিয়ম হাতে লেখা নয় (Data+Output → Rules)
✓ Features (X), Label (y), Dataset — মূল শব্দভাণ্ডার
✓ Supervised (label আছে) / Unsupervised (নেই) / Reinforcement; supervised-এর ভেতরে Regression vs Classification
✓ Train / Validation / Test কেন ভাগ করি — test হলো final exam
✓ Training ≠ Inference — আলাদা phase, আলাদা খরচ
✓ scikit-learn-এ প্রথম fit/predict চালানো
✓ ML হলো AI-এর subset; classical ML ≠ Deep Learning
পরবর্তী Episode: Linear Regression — prediction-এর "Hello World"। House Price দিয়ে
আমরা প্রথম সত্যিকারের model train করব এবং দেখব একটা সংখ্যা কীভাবে predict হয়।