লজিস্টিক রিগ্রেশন (Logistic Regression)
ধরা যাক, আপনি একটি এক্সক্লুসিভ (exclusive) বা দারুণ ক্লাবের একজন বাউন্সার (bouncer) বা দারোয়ান। আপনার সামনে দিয়ে যে-ই হেঁটে যাচ্ছে, তার কিছু নির্দিষ্ট বৈশিষ্ট্য বা ফিচারের দিকে আপনি নজর রাখছেন — যেমন তার বয়স, তার পোশাক-পরিচ্ছদ এবং তার ভিআইপি স্ট্যাটাস (VIP status) ইত্যাদি। কিন্তু এখানে আপনার কাজ তাদেরকে এক থেকে ১০০ এর মধ্যে কোনো রেটিং (rating) দেওয়া নয়। বরং আপনার কাজ হলো কেবল হ্যাঁ বা না-এর মতো একটি বাইনারি (binary) সিদ্ধান্ত নেওয়া: হয় আপনি ভেতরে যাবেন, অথবা আপনি বাইরে থাকবেন।
কিন্তু এখানকার সবচেয়ে মজার বিষয় হলো — আপনি শুধু কয়েন টস করে বা আন্দাজে এই সিদ্ধান্তগুলো নিচ্ছেন না। আপনার এই গাট ফিলিং (gut feeling) বা অনুমানের পেছনে মূলত বড় একটি গাণিতিক হিসাব বা লজিক লুকিয়ে আছে। আপনি তাদের প্রতিটি বৈশিষ্ট্য বা ফিচার মেপে দেখছেন, সেগুলোকে একসাথে যোগ করছেন এবং সেই যোগফলটি যদি একটি নির্দিষ্ট মাত্রা বা থ্রেশোল্ড (threshold) পার করে... তবেই আপনি তাদের জন্য ক্লাবের দরজা খুলে দিচ্ছেন।
আর এটিকেই লজিস্টিক রিগ্রেশন (logistic regression) বলা হয়। নামের পাশে রিগ্রেশন (যেটি সংখ্যা প্রেডিক্ট করে) থাকলেও, এটি মূলত একটি ক্লাসিফিকেশন (classification) বা শ্রেণীবিভাগের অ্যালগরিদম — অর্থাৎ এটি মূলত কোনো কিছু কোন ক্যাটাগরিতে (category) পড়বে, তা প্রেডিক্ট বা অনুমান করে।
সোজা লাইন থেকে এস-কার্ভে (S-curve) বদলানো
আপনার কি লিনিয়ার রিগ্রেশনের (linear regression) কথা মনে আছে? এটি মূলত আপনাকে একটি সংখ্যা দেয়: y = mx + b। কিন্তু হ্যাঁ বা না (yes/no) ধরনের সমস্যাগুলোর ক্ষেত্রে, আমাদের একটি প্রবাবিলিটি বা সম্ভাবনা (probability) প্রয়োজন — যা মূলত ০ থেকে ১-এর মধ্যে একটি সংখ্যা。
আর ঠিক এই জায়গাতেই সিগময়েড ফাংশনের (sigmoid function) কাজ শুরু হয়। এটি মূলত যেকোনো সংখ্যাকে (নেগেটিভ বা ঋণাত্মক অসীম থেকে শুরু করে পজিটিভ বা ধনাত্মক অসীম পর্যন্ত) টেনেটুনে বা স্কুইশ (squish) করে (০, ১) এই রেঞ্জ বা পরিসরের মধ্যে নিয়ে আসে। এর সূত্রটি হলো:
sigmoid(z) = 1 / (1 + e^(-z))
এটিকে আপনি চাইলে একটি বদলানো বা মডিফাইড ডিমার সুইচের (dimmer switch) সাথে তুলনা করতে পারেন। আপনি এর নবটি (knob) যেদিকেই ঘোরান না কেন, এর আলো কখনোই ০%-এর নিচে বা ১০০%-এর ওপরে যাবে না। এটিকে আপনি অনেক বেশি বাম দিকে ঘোরালে এটি ০-এর কাছাকাছি পৌঁছাবে কিন্তু কখনোই সেটিকে একেবারে ছুঁতে পারবে না। আবার অনেক বেশি ডান দিকে ঘোরালে এটি ঠিক একইভাবে ১-এর কাছাকাছি পৌঁছাবে।
এর আউটপুট যদি ০.৫-এর বেশি হয়, তবে আমরা একে "হ্যাঁ (yes)" (ক্লাস 1) হিসেবে প্রেডিক্ট বা অনুমান করব। আর যদি এটি ০.৫-এর কম হয়? তবে এটি হবে "না (No)" (ক্লাস 0)।
সিদ্ধান্ত নেওয়ার সীমানা বা ডিসিশন বাউন্ডারি (The decision boundary)
এর সবচেয়ে দারুণ বা কুল (cool) জিনিসটি এখানেই রয়েছে। লজিস্টিক রিগ্রেশন আপনার ফিচার স্পেসের (feature space) মধ্যে দিয়ে একটি অদৃশ্য রেখা (অথবা সমতল বা হারাইপারপ্লেন) এঁকে দেয়। যার একপাশে থাকে ক্লাস 0 এবং অন্যপাশে থাকে ক্লাস 1।
একটি টেবিলের ওপর ছড়ানো কিছু লাল এবং নীল রঙের মার্বেলের কথা চিন্তা করুন। লজিস্টিক রিগ্রেশন মূলত এই লাল এবং নীল রঙের মার্বেলগুলোকে আলাদা করার জন্য সবচেয়ে ভালো ও সোজা একটি লাইন খুঁজে বের করে। এই লাইনটির কাছাকাছি থাকা পয়েন্টগুলোর ক্ষেত্রে মডেলটি একটু কম আত্মবিশ্বাসী (less confident) হয়। আর লাইনটি থেকে অনেক দূরে থাকা পয়েন্টগুলোর ক্ষেত্রে মডেলটি অনেক বেশি আত্মবিশ্বাসী (very confident) হয়।
এই মডেলটি শুধু "এটি স্প্যাম (spam)" বা "এটি স্প্যাম নয় (not spam)" বলেই থেমে যায় না — বরং এটি আপনাকে বলে যে, "আমি ৯৪% নিশ্চিত যে এটি স্প্যাম।" আর এই ধরনের প্রবাবিলিটি বা সম্ভাবনাগুলো আমাদের জন্য অনেক বেশি কাজের ও প্রয়োজনীয়।
লজিস্টিক রিগ্রেশন: স্প্যাম নাকি স্প্যাম নয়? (Logistic Regression: Spam or Not?)
Key Metrics
ছোট কুইজ
পড়া চালিয়ে যান