সরাসরি প্রধান সামগ্রীতে চলে যান

Classification বনাম Regression এবং মডেল ট্রেনিংয়ের সহজ পাঠ

Introduction

মেশিন লার্নিংয়ের জগতটা শুনতে খুব কঠিন মনে হলেও, আসলে এটি আমাদের সাধারণ বুদ্ধির মতোই কাজ করে। এই ভিডিওর নির্দিষ্ট অংশে (১৭:২৩ থেকে ৩০:৫৭) সহজভাবে বোঝানো হয়েছে যে, আমরা যখন কোনো মেশিনকে শিক্ষা দিই (Supervised Learning), তখন সে মূলত দুই ধরনের কাজ করে: Classification এবং Regression। এছাড়া একটি মডেলকে কীভাবে ধাপে ধাপে দক্ষ করে তোলা হয়, অর্থাৎ Training Model Theory নিয়ে এখানে বিস্তারিত আলোচনা করা হয়েছে।


Topic 1: Classification (শ্রেণীবিন্যাস)

মেশিন লার্নিংয়ের এই পদ্ধতিতে কম্পিউটারকে নির্দিষ্ট কিছু ক্যাটাগরি বা গ্রুপে ডেটা ভাগ করতে শেখানো হয়।

ভিডিও রেফারেন্স: [17:35]

বিস্তারিত আলোচনা: সহজ কথায় বলতে গেলে, Classification হলো কোনো কিছুকে "হ্যাঁ" অথবা "না", অথবা নির্দিষ্ট কোনো নাম দিয়ে চিহ্নিত করা। ধরুন, আপনি কম্পিউটারকে অনেকগুলো ছবি দেখালেন এবং সে বলতে পারবে কোনটি 'বিড়াল' আর কোনটি 'কুকুর'। এখানে ফলাফলগুলো সব সময় আলাদা আলাদা বা Discrete হয়। অর্থাৎ, মাঝামাঝি কোনো উত্তর নেই—হয় এটি বিড়াল, না হয় কুকুর।

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

  • ইমেইল স্প্যাম কি না তা যাচাই করা (Spam or Not Spam)।

  • একজন মানুষের রক্ত পরীক্ষা করে রোগ আছে কি নেই তা বলা।


Topic 2: Regression (রিগ্রেশন বা সংখ্যাগত পূর্বাভাস)

যখন আমাদের উত্তরের দরকার হয় কোনো একটি নির্দিষ্ট সংখ্যায়, তখন আমরা Regression ব্যবহার করি।

ভিডিও রেফারেন্স: [19:15]

বিস্তারিত আলোচনা: Classification যেখানে নাম বা গ্রুপ নিয়ে কাজ করে, Regression সেখানে কাজ করে Continuous মান বা সংখ্যা নিয়ে। যেমন, আবহাওয়ার পূর্বাভাস দেখে আগামীকালকের তাপমাত্রা কত ডিগ্রি হবে তা বলা, অথবা কোনো বাড়ির আকার দেখে তার দাম কত হতে পারে তা ধারণা করা। এখানে উত্তরটা কোনো নাম নয়, বরং একটি সংখ্যা।

পার্থক্য বোঝার টিপস: যদি উত্তর হয় "শ্রেণী" (যেমন: আপেল না কমলা), তবে সেটা Classification। আর যদি উত্তর হয় "কত" (যেমন: ১০ টাকা না ১২ টাকা), তবে সেটা Regression।


Topic 3: Training Model Theory (মডেল ট্রেনিং তত্ত্ব)

একটি মেশিনকে কীভাবে শেখানো হয়, সেই প্রক্রিয়াটিই হলো মডেল ট্রেনিং। এটি অনেকটা ছোট বাচ্চাকে ছবি দেখে নাম শেখানোর মতো।

ভিডিও রেফারেন্স: [22:24]

বিস্তারিত আলোচনা: মডেল ট্রেনিংয়ের মূল বিষয়টি হলো—মেশিনকে কিছু তথ্য দেওয়া হয় এবং সে সেটার ওপর ভিত্তি করে একটি আন্দাজ (Prediction) করে। এরপর সেই আন্দাজটি আসলের সাথে মিলিয়ে দেখা হয়। যদি ভুল হয়, তবে মেশিন নিজেকে সংশোধন করে নেয়।

এই ভিডিওতে একটি দারুণ উদাহরণ দেওয়া হয়েছে: আপনার কাছে যদি এক বাক্স চকলেট থাকে, আপনি কি সব চকলেট একবারে মডেলকে দিয়ে দেবেন? না! ১. Training Set: আমরা আমাদের ডেটার বড় একটি অংশ (যেমন ৮০%) ব্যবহার করি মেশিনকে শেখানোর জন্য। ২. Validation Set: শেখার মাঝপথে পরীক্ষা করে দেখার জন্য কিছু ডেটা আলাদা রাখা হয়। ৩. Test Set: সবশেষে একদম নতুন কিছু ডেটা দিয়ে দেখা হয় মেশিনটি আসলেও শিখল কি না।


Coding Snippet: ডেটা প্লট করা (Histogram)

ভিডিওতে ডেটাগুলো কেমন তা বোঝার জন্য পাইথন দিয়ে গ্রাফ বা হিস্টোগ্রাম তৈরি করা দেখানো হয়েছে।

Python

import matplotlib.pyplot as plt

# সব ফিচারের জন্য লুপ চালিয়ে হিস্টোগ্রাম তৈরি করা
for label in cols[:-1]:
    plt.hist(df[df["class"] == 1][label], color='blue', label='gamma', alpha=0.7, density=True)
    plt.hist(df[df["class"] == 0][label], color='red', label='hadron', alpha=0.7, density=True)
    plt.title(label)
    plt.ylabel("Probability")
    plt.xlabel(label)
    plt.legend()
    plt.show() 

কোড ব্যাখ্যা:

  • plt.hist: এটি দিয়ে একটি স্তম্ভচিত্র বা হিস্টোগ্রাম তৈরি করা হয়।

  • label: ডেটার বিভিন্ন বৈশিষ্ট্য (যেমন লেন্সের আকার)।

  • alpha=0.7: এটি গ্রাফের রঙকে কিছুটা স্বচ্ছ করে যাতে একটার ওপর আরেকটা দেখা যায়।

  • density=True: এটি ব্যবহার করা হয়েছে যাতে ডেটার পরিমাণ যাই হোক না কেন, তাদের অনুপাত বা Probability তুলনা করা যায়।


Analysis & Thinking

কন্টেন্ট ক্রিয়েটরের উদ্দেশ্য: ভিডিওর এই অংশে কাইলি ইং (Kylie Ying) বোঝাতে চেয়েছেন যে, মেশিন লার্নিং মানেই শুধু কোডিং নয়, বরং ডেটার ধরন বোঝা। তিনি মূলত ডেটা সায়েন্সের ভিত্তিটা পরিষ্কার করার চেষ্টা করেছেন যাতে একজন বিগিনার বুঝতে পারে কখন কোন মডেল ব্যবহার করতে হবে।

বাস্তব প্রেক্ষাপট ও আমার ভাবনা: বাস্তব জীবনে আমরা না জেনেই অনেক সময় Classification এবং Regression ব্যবহার করি। যেমন: বাজারে গিয়ে মাছটি পচা না কি ভালো দেখা হলো Classification, আর মাছটির দাম কত হতে পারে তার দরদাম করাটা হলো অনেকটা Regression-এর মতো।

পরামর্শ: যারা নতুন শিখছেন, তাদের জন্য পরামর্শ হলো সরাসরি কোডিংয়ে ঝাঁপিয়ে না পড়ে আগে 'ডেটা' নিয়ে খেলা করুন। ভিডিওতে যেভাবে Validation এবং Test সেটের কথা বলা হয়েছে, তা কঠোরভাবে মেনে চলা উচিত। কারণ, আপনার মডেল যদি শুধু ট্রেনিং ডেটা মুখস্থ করে ফেলে (যাকে Overfitting বলে), তবে বাস্তব জীবনে তা কোনো কাজে আসবে না।

বিকল্প ব্যবস্থা: বর্তমানে অনেক 'Auto-ML' টুল আছে যেখানে কোডিং ছাড়াও এই কাজগুলো করা যায়, তবে তাত্ত্বিক জ্ঞান না থাকলে সেই টুলগুলো দিয়ে নিখুঁত ফলাফল পাওয়া কঠিন। তাই এই ভিডিওর মূল তত্ত্বগুলো বোঝা অত্যন্ত জরুরি।

[

Machine Learning for Everybody – Full Course

freeCodeCamp.org · 9.4M views

](http://www.youtube.com/watch?v=i_LwzRVP7bg)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

ইমেজ ক্লাসিফিকেশন মডেল তৈরি ও প্রশিক্ষণ

ভূমিকা এই ভিডিওটিতে আমরা দেখবো কিভাবে একটি ইমেজ ক্লাসিফিকেশন মডেলকে প্রশিক্ষণ (Train) দিতে হয়। সহজ কথায়, আমাদের কাছে থাকা ছবিগুলো থেকে কম্পিউটারকে শেখানো যে, কোন ছবিটিতে কোন ব্যক্তি আছেন। এখানে আমরা ডাটাগুলোকে প্রসেস করা, মডেল নির্বাচন, এবং মডেলটি কতটা নির্ভুলভাবে কাজ করছে তা যাচাই করার প্রক্রিয়া শিখবো। ডাটা প্রিপারেশন বা প্রস্তুতি রেফারেন্স: [ 00:00 ] থেকে [ 01:03 ] মডেলকে প্রশিক্ষণ দেওয়ার আগে ডাটা ঠিকঠাক করা খুব জরুরি। ভিডিওতে দেখানো হয়েছে কিভাবে ছবিগুলো থেকে একটি ডিকশনারি বা তালিকার মতো স্ট্রাকচার তৈরি করা হয়েছে। সহজ ব্যাখ্যা: এখানে ইমেজগুলোকে সংখ্যায় রূপান্তর করা হয়েছে। কম্পিউটার সরাসরি ছবি বোঝে না, তাই সেগুলোকে ছোট ছোট ডাটা পয়েন্টের (Array) তালিকা হিসেবে সাজানো হয়েছে। যাতে মডেল বুঝতে পারে একটি ছবিতে কী কী বৈশিষ্ট্য আছে। মডেল নির্বাচন ও প্রশিক্ষণ (SVM) রেফারেন্স: [ 01:03 ] থেকে [ 04:43 ] এখানে Support Vector Machine (SVM) নামক একটি অ্যালগরিদম ব্যবহার করা হয়েছে। এটি সাধারণত ক্লাসিফিকেশনের কাজে খুব ভালো ফলাফল দেয়। পাইপলাইন (Pipeline): ডাটাকে স্কেল (Scale) করার জন্...

জাভা ফিডব্যাক এবং স্ট্রাকচার্ড কনকারেন্সি: বিবর্তনের গল্প

Introduction এই ভিডিওর নির্দিষ্ট অংশে জাভা ল্যাঙ্গুয়েজ আর্কিটেক্ট ব্রায়ান গোয়েটজ (Brian Goetz) আলোচনা করেছেন কীভাবে জাভার নতুন ফিচারগুলো তৈরি হয় এবং এতে সাধারণ ডেভেলপারদের মতামতের গুরুত্ব কতটুকু। বিশেষ করে Structured Concurrency -এর মতো জটিল ফিচারগুলো কেন বারবার 'Preview' অবস্থায় থাকে এবং কীভাবে কমিউনিটির ফিডব্যাক সেই ফিচারগুলোকে আরও নিখুঁত করতে সাহায্য করে, তা এখানে সহজভাবে বোঝানো হয়েছে। ১. ভালো ফিডব্যাক আসলে কী? ভিডিও রেফারেন্স: [ 34:53 ] ব্রায়ান গোয়েটজ বলছেন যে, জাভা টিম যখন কোনো নতুন ফিচারের খসড়া (Draft) বা প্রস্তাব (JEP) প্রকাশ করে, তখন তারা এমন কিছু জানতে চায় যা তারা নিজেরা আগে ভাবেনি। বিস্তারিত: একজন ডেভেলপার হিসেবে আমরা যখন কোনো নতুন ফিচার দেখি, আমাদের প্রথম প্রতিক্রিয়া হয় সেটার Syntax বা লেখার ধরন নিয়ে। কিন্তু ব্রায়ানের মতে, "এই লেখাটা কেন এমন হলো?" বা "এটা কোটলিন বা স্কালা-র মতো কেন নয়?"—এই ধরনের ফিডব্যাক খুব একটা কাজে আসে না। আসল দামী ফিডব্যাক হলো সেইটা, যা নতুন কোনো বাস্তব সমস্যা (Edge Case) তুলে ধরে। আমার চিন্তা: আপনি যদি কেবল দ...