Machine Learning/ML-এর ভিত্তি/Lesson 02
ML workflow: Problem থেকে Deployment
একটা ML project-এর পুরো চক্র — সমস্যা ঠিক করা, সঠিক metric, baseline, model, evaluation, deployment আর monitoring — আর কেন "আমার model 80% accurate" কথাটা একা কিছুই বলে না।
- সময়
- 24 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
ML মানে শুধু model.fit() না। একটা real ML project-এর পুরো চক্র:
1. Problem কী predict করবো? কেন? ভুল হলে কী ক্ষতি?
2. Data কোন data আছে? পরিষ্কার? যথেষ্ট?
3. Baseline সবচেয়ে সহজ উপায়ে কতটা পারা যায়?
4. Model algorithm বাছাই, feature, training
5. Evaluation নতুন data-য় কতটা ভালো? baseline-এর চেয়ে কতটা?
6. Deployment আসল ব্যবহারকারীর কাছে পৌঁছানো
7. Monitoring সময়ের সাথে এখনো ঠিক কাজ করছে?
└──────── সমস্যা পেলে আবার ১ বা ২-এ ────────┘
এই path-এর প্রতিটা algorithm আমরা এই চক্রের ভেতরে দেখবো — শুধু "algorithm কীভাবে কাজ করে" না, "কখন ব্যবহার করবো, কীভাবে যাচাই করবো"।
কেন দরকার?
বেশিরভাগ ML project ব্যর্থ হয় algorithm-এর কারণে না, বরং:
- ভুল সমস্যা সমাধান করা হয়েছে
- Data-তে সমস্যা ছিল কেউ খেয়াল করেনি
- "ভালো" model আসলে baseline-এর চেয়ে ভালো ছিল না
- Lab-এ কাজ করেছে, আসল দুনিয়ায় না
ধাপ ১: Problem — সঠিক প্রশ্ন
ধরো একটা NGO বলল: "ML দিয়ে student-দের সাহায্য করো।" এটা সমস্যা না, একটা ইচ্ছা। ML problem হলো:
| প্রশ্ন | উত্তর |
|---|---|
| ঠিক কী predict করবো? (target) | একজন student SSC-তে fail করবে কিনা |
| কখন predict করবো? | পরীক্ষার ৬ মাস আগে |
| কোন তথ্য তখন জানা থাকে? (features) | পড়ার সময়, উপস্থিতি, tutor, পরিবার |
| Prediction দিয়ে কী করা হবে? | ঝুঁকিতে থাকাদের জন্য extra class |
| কোন ভুল বেশি ক্ষতিকর? | ঝুঁকিতে থাকা কাউকে মিস করা (extra class-এ একজন বেশি থাকলে তেমন ক্ষতি নেই) |
শেষ প্রশ্নটা খুব গুরুত্বপূর্ণ — এটাই ঠিক করবে কোন metric দিয়ে model বিচার করবো।
"কখন predict করবো" — এই প্রশ্নটা data leakage আটকায়। পরীক্ষার ৬ মাস আগে student-এর math নম্বর জানা থাকে না — তাই সেটা feature হতে পারে না, যদিও data-তে আছে! আমাদের dataset-এর
avg_scoreবাmathদিয়েpassedpredict করা প্রতারণা — উত্তর দিয়ে উত্তর বলা।
ধাপ ৩: Baseline — সবচেয়ে গুরুত্বপূর্ণ সংখ্যা
আগের lesson-এ শেখা threshold-টা মনে করো — accuracy প্রায় ৮১%। ভালো শোনায়? কিন্তু দেখো:
কিছুই না শিখে — শুধু সবাইকে "pass" বলে — প্রায় ৭৮%! আমাদের শেখা নিয়ম মাত্র ~৩% ভালো। আর সবচেয়ে খারাপ ব্যাপার: "সবাই pass" model একজন ঝুঁকিতে থাকা student-কেও চিহ্নিত করে না — যেটাই আমাদের আসল উদ্দেশ্য ছিল।
এটাই baseline: সবচেয়ে সহজ, "বোকা" উপায়ে কতটা পারা যায়। প্রতিটা model-কে baseline-এর সাথে তুলনা করতে হয়।
| সমস্যা | Baseline |
|---|---|
| Classification | সবচেয়ে বেশি আসা class (majority) |
| Regression | সবার জন্য গড় (বা median) |
| Time series | গতকালের মান |
ধাপ ৫: Evaluation — নতুন data-য়
Model যে data দিয়ে শিখেছে, সেই data-তে পরীক্ষা নিলে সেটা মুখস্থ বিদ্যার পরীক্ষা। আসল প্রশ্ন: নতুন, অদেখা student-দের ক্ষেত্রে কতটা ঠিক? এজন্য data ভাগ করা হয় — train আর test। এই module-এর শেষ lesson-এ।
ধাপ ৬-৭: Deployment আর Monitoring
Notebook-এ model ──► file-এ save ──► API (FastAPI) ──► app/website
│
নতুন data, নতুন prediction
│
monitoring: accuracy কি কমছে? data কি বদলাচ্ছে?
নতুন syllabus এলে, বা মহামারীতে স্কুল বন্ধ থাকলে, পুরনো data-য় শেখা model হঠাৎ ভুল করতে শুরু করবে। AI Engineering আর MLOps path-এ এই অংশ বিস্তারিত।
Exercise
Exercise
Baseline কত?
students_clean.csv থেকে:
majority_class—passedcolumn-এ যে মান বেশি (True বা False)baseline_acc— সবার জন্য majority class predict করলে accuracy কত, 3 ঘর দশমিকে round
Quiz
Challenge
Challenge
scikit-learn-এর মতো baseline model
scikit-learn-এর সব model একই আকারের — fit, predict, score। সেই আকারে একটা baseline বানাও:
MajorityBaseline class:
fit(X, y)—y-এ সবচেয়ে বেশি আসা মানself.majority_-এ রাখবে, আর `self` return করবেpredict(X)—X-এর প্রতিটা row-এর জন্যmajority_— একটা NumPy array, দৈর্ঘ্যlen(X)score(X, y)—predict(X)আরyকত ভাগ মেলে (accuracy),float
বাস্তবে কোথায় ব্যবহার হয়?
তুমি যে MajorityBaseline বানালে, scikit-learn-এ সেটা আছে DummyClassifier নামে — আর একই fit/predict/score interface থাকায় যেকোনো আসল model-এর পাশে বসিয়ে তুলনা করা যায়:
Professional ML report-এ প্রথম লাইন প্রায় সবসময়: "baseline X%, আমাদের model Y%"। Baseline ছাড়া একটা accuracy সংখ্যা অর্থহীন।
Interview প্রশ্ন
- Beginner: ML project-এর ধাপগুলো কী কী?
- Intermediate: Baseline কী, আর কেন জরুরি? Classification আর regression-এ কী baseline নেবে?
- Advanced: Data leakage কী? এই dataset-এ
avg_scoreদিয়েpassedpredict করা কেন leakage? Production-এ leakage কীভাবে ধরা পড়ে?
এরপর কী?
Model-কে data দিতে হয় সংখ্যার table হিসেবে। কিন্তু "Dhaka", "tutor: yes", "higher education" — এগুলো তো সংখ্যা না! পরের lesson: Features ও Labels।