মূল content-এ যাও

Machine Learning/ML-এর ভিত্তি/Lesson 01

Machine Learning কী?

হাতে নিয়ম লেখা বনাম data থেকে নিয়ম শেখা — ML-এর মূল ধারণা, supervised আর unsupervised, কখন ML দরকার আর কখন না — আর নিজের হাতে প্রথম "learning algorithm" লেখা।

সময়
24 মিনিট
Exercise
1
Challenge
1
Quiz
3 প্রশ্ন

সহজ ভাষায়

এতদিন program লেখা মানে ছিল নিয়ম লেখা:

Traditional programming:     নিয়ম + data  ──►  উত্তর
                             (if marks >= 40: "pass")

কিন্তু কিছু সমস্যার নিয়ম লেখা প্রায় অসম্ভব। একটা ছবিতে বিড়াল আছে কিনা — কোন pixel কী রঙের হলে বিড়াল? একটা email spam কিনা — কোন শব্দ কতবার এলে spam? এখানে Machine Learning উল্টো পথে চলে:

Machine Learning:            data + উত্তর  ──►  নিয়ম (model)
                             (হাজারটা email, প্রতিটা spam কিনা চিহ্নিত)

তুমি উদাহরণ দাও, computer নিয়ম খুঁজে বের করে। সেই খুঁজে পাওয়া নিয়মকে বলে model। তারপর নতুন data-য় model প্রয়োগ করো — একে বলে prediction।

কেন দরকার?

বাংলাদেশেই চারপাশে ML:

  • bKash/Nagad — কোন লেনদেন সন্দেহজনক (fraud detection)
  • Daraz, Chaldal — "তোমার পছন্দ হতে পারে" (recommendation)
  • কৃষি app — পাতার ছবি দেখে ধানের রোগ চেনা (image classification)
  • Pathao, Uber — কত সময় লাগবে, ভাড়া কত (regression)
  • Google Translate, ChatGPT, Claude — ভাষা বোঝা আর লেখা

ML-এর তিন ধরন

ধরনDataউদাহরণ
Supervisedinput + সঠিক উত্তর (label)spam চেনা, দাম predict
Unsupervisedশুধু input, কোনো উত্তর নেইcustomer-দের দলে ভাগ করা
Reinforcementচেষ্টা আর পুরস্কারgame খেলা, robot চালানো

এই path-এর বেশিরভাগ supervised learning, যার দুটো রূপ:

  • Regression — উত্তর একটা সংখ্যা: দাম, তাপমাত্রা, নম্বর
  • Classification — উত্তর একটা category: spam/না, pass/fail, বিড়াল/কুকুর

Learning আসলে কী? নিজের হাতে দেখো

Python path-এর project-এর student data মনে আছে? চলো একটা প্রশ্ন করি: পড়ার সময় দেখে pass/fail বলা যায়?

হাতে একটা নিয়ম অনুমান করি — "৮ ঘণ্টা বা বেশি হলে pass":

main.py

কয়েকটা threshold চেষ্টা করলাম, প্রতিটার accuracy দেখলাম। এখন কল্পনা করো — computer নিজেই সব সম্ভাব্য threshold চেষ্টা করে সেরাটা বেছে নিচ্ছে। সেটাই learning:

1. একটা model-এর আকার ঠিক করো    (hours >= t)
2. একটা মাপকাঠি ঠিক করো          (accuracy)
3. data দেখে সেরা parameter খোঁজো (সেরা t)

Challenge-এ ঠিক এই algorithm-টাই লিখবে। এর একটা নামও আছে — decision stump, decision tree-র সবচেয়ে ছোট রূপ।

Linear regression, neural network, এমনকি GPT — সবগুলো এই তিন ধাপই করে। পার্থক্য শুধু model-এর আকারে (একটা threshold বনাম কোটি কোটি weight) আর সেরা parameter খোঁজার কৌশলে (সব চেষ্টা করা বনাম gradient descent)।

কখন ML দরকার নেই

ML শক্তিশালী, কিন্তু সবসময় সঠিক উত্তর না:

  • নিয়ম জানা ও সহজ → সরাসরি code লেখো (VAT, বয়স যাচাই)
  • Data নেই বা খুব কম → model শেখার কিছু পাবে না
  • ভুলের মূল্য অনেক বেশি আর ব্যাখ্যা লাগবে → সাবধানে, অনেক যাচাই করে
  • একটা সাধারণ নিয়মই যথেষ্ট ভালো → জটিল model-এর দরকার নেই

ভালো ML engineer-এর প্রথম প্রশ্ন: "এখানে কি আসলেই ML লাগবে?"

Exercise

Exercise

হাতে লেখা নিয়ম

+20 XP

Python path-এর project-এর পরিষ্কার dataset students_clean.csv load করো। একটা হাতে লেখা নিয়ম দিয়ে pass/fail predict করো:

"সপ্তাহে ৮ ঘণ্টা বা বেশি পড়লে pass"

  • predictions — প্রতিটা student-এর জন্য True/False (Series বা array)
  • accuracy — কত ভাগ prediction আসল passed-এর সাথে মিলেছে, 3 ঘর দশমিকে round
solution.py

Quiz

  1. Q1Traditional programming আর Machine Learning-এর মূল পার্থক্য কী?
  2. Q2বাড়ির দাম predict করা কোন ধরনের সমস্যা?
  3. Q3কোন ক্ষেত্রে ML সম্ভবত সঠিক পছন্দ না?
0/3 answered

Challenge

Challenge

তোমার প্রথম learning algorithm

+50 XP

"৮ ঘণ্টা" আমি অনুমানে বলেছি। এবার computer-কে data থেকে নিজে শিখতে দাও।

learn_threshold(hours, passed) function লেখো:

  1. hours-এ যত আলাদা মান আছে, প্রতিটাকে threshold হিসেবে চেষ্টা করো ("hours >= t হলে pass")
  2. প্রতিটার accuracy মাপো
  3. সবচেয়ে বেশি accuracy-র threshold আর accuracy return করো: (best_t, best_acc), দুটোই float
  4. সমান accuracy হলে ছোট threshold-টা নাও
solution.py

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

তুমি যে threshold শিখলে, scikit-learn-এর DecisionTreeClassifier(max_depth=1) ঠিক এটাই করে — শুধু সব feature জুড়ে খোঁজে:

main.py

Model নিজেই বেছে নিয়েছে কোন feature আর কোন threshold সবচেয়ে কার্যকর। এই path-এর বাকিটা জুড়ে দেখবো — আরও শক্তিশালী model, আর (খুব গুরুত্বপূর্ণ) কীভাবে নিশ্চিত হবে যে model নতুন student-দের ক্ষেত্রেও ঠিক কাজ করবে, শুধু চেনা data-য় না।

Interview প্রশ্ন

  • Beginner: Machine Learning কী? Supervised আর unsupervised-এর পার্থক্য কী?
  • Intermediate: Regression আর classification-এর পার্থক্য উদাহরণ দিয়ে বলো। কোন সমস্যায় ML ব্যবহার করবে না?
  • Advanced: Challenge-এ সব data দিয়ে threshold শিখে সেই data-তেই accuracy মাপলে — এই accuracy নতুন student-দের ক্ষেত্রে কেন বেশি আশাবাদী হতে পারে?

এরপর কী?

একটা model বানানো ML project-এর ছোট একটা অংশ। Problem ঠিক করা থেকে deploy পর্যন্ত পুরো পথটা কেমন? পরের lesson: ML workflow: Problem থেকে Deployment।