মূল content-এ যাও

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 দিয়ে passed predict করা প্রতারণা — উত্তর দিয়ে উত্তর বলা।

ধাপ ৩: Baseline — সবচেয়ে গুরুত্বপূর্ণ সংখ্যা

আগের lesson-এ শেখা threshold-টা মনে করো — accuracy প্রায় ৮১%। ভালো শোনায়? কিন্তু দেখো:

main.py

কিছুই না শিখে — শুধু সবাইকে "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 কত?

+20 XP

students_clean.csv থেকে:

  • majority_class — passed column-এ যে মান বেশি (True বা False)
  • baseline_acc — সবার জন্য majority class predict করলে accuracy কত, 3 ঘর দশমিকে round
solution.py

Quiz

  1. Q1একটা fraud detection model-এর accuracy 99%। ১০০০ লেনদেনের মধ্যে ১০টা fraud। এই model কি ভালো?
  2. Q2ML workflow-এর কোন ধাপটা সবচেয়ে বেশি সময় নেয়, বাস্তবে?
  3. Q3Model deploy করার পর কাজ শেষ?
0/3 answered

Challenge

Challenge

scikit-learn-এর মতো baseline model

+50 XP

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
solution.py

বাস্তবে কোথায় ব্যবহার হয়?

তুমি যে MajorityBaseline বানালে, scikit-learn-এ সেটা আছে DummyClassifier নামে — আর একই fit/predict/score interface থাকায় যেকোনো আসল model-এর পাশে বসিয়ে তুলনা করা যায়:

main.py

Professional ML report-এ প্রথম লাইন প্রায় সবসময়: "baseline X%, আমাদের model Y%"। Baseline ছাড়া একটা accuracy সংখ্যা অর্থহীন।

Interview প্রশ্ন

  • Beginner: ML project-এর ধাপগুলো কী কী?
  • Intermediate: Baseline কী, আর কেন জরুরি? Classification আর regression-এ কী baseline নেবে?
  • Advanced: Data leakage কী? এই dataset-এ avg_score দিয়ে passed predict করা কেন leakage? Production-এ leakage কীভাবে ধরা পড়ে?

এরপর কী?

Model-কে data দিতে হয় সংখ্যার table হিসেবে। কিন্তু "Dhaka", "tutor: yes", "higher education" — এগুলো তো সংখ্যা না! পরের lesson: Features ও Labels।