রেন্ডম ফরেস্ট (Random Forests)
ভাবুন তো, আপনি একটি বয়াম বা জারের (jar) ভেতরে থাকা জেলি বিনের (jellybeans) সংখ্যা অনুমান করার চেষ্টা করছেন। আপনি ১০০ জন ভিন্ন ভিন্ন মানুষকে (100 different people) তা অনুমান করতে বললেন। আলাদা আলাদাভাবে দেখতে গেলে, এদের বেশিরভাগ মানুষের অনুমানই আসলে মূল সংখ্যার চেয়ে অনেক দূরে থাকবে। কিন্তু আপনি যদি এই ১০০টি অনুমানের গড় বা এভারেজ (average) বের করেন, তবে দেখবেন যে এর ফলাফলটি আসল সংখ্যাটির খুবই কাছাকাছি চলে এসেছে।
আর এটিকেই মূলত উইজডম অফ দ্য ক্রাউড (wisdom of the crowd) বা জনতার জ্ঞান বলা হয়ে থাকে, এবং এটিই হলো রেন্ডম ফরেস্টের (Random Forests) মূল ভিত্তি। শুধুমাত্র একটিমাত্র ডিসিশন ট্রিয়ের (decision tree) (যা হয়তো ওভারফিট বা overfit করতে পারে) ওপর নির্ভর না করে, এখানে মূলত প্রায় কয়েকশো আলাদা আলাদা গাছ বা ট্রি (trees) তৈরি করা হয় এবং এরপর তাদের সবাইকে ভোট দিতে বলা হয়।
হয়তো এই গাছগুলোর (trees) প্রত্যেকটি আলাদাভাবে দেখতে বেশ সাধারণ বা ম্যাড়মেড়ে (mediocre) লাগতে পারে। কিন্তু এদের সমন্বিত বা একসাথে দেওয়া ভোট? তা সত্যিই অনেক বেশি নিখুঁত বা অ্যাকুরেট (accurate)।
কোন জিনিসটি প্রতিটি গাছ বা ট্রিকে "রেন্ডম (random)" করে তোলে? (What makes each tree "random"?)
আপনি যদি ১০০টি হুবহু একই রকম গাছ বা ট্রি (trees) তৈরি করেন, তবে তারা সবাই মূলত একই ধরনের ভুলগুলো করবে — আর সেক্ষেত্রে ভোট নেওয়াটাও আসলে কোনো কাজে আসবে না। এখানকার মূল কৌশলটি হলো, মূলত দুই ধরনের রেন্ডমনেস (randomness) বা এলোমেলো ভাব যুক্ত করার মাধ্যমে এখানকার প্রতিটি গাছকে আলাদা (different) করা হয়:
১. রেন্ডম ডেটা (বুটস্ট্র্যাপ স্যাম্পলিং বা Bootstrap sampling)
প্রতিটি গাছ বা ট্রি (tree) মূলত এখানকার ট্রেইনিং ডেটার একটি এলোমেলো বা রেন্ডম সাবসেট (random subset) পায়, যা রিপ্লেসমেন্টসহ (with replacement) স্যাম্পল করা হয়। ব্যাপারটিকে ঠিক এভাবে চিন্তা করুন: আপনার সমস্ত ডেটা একটি ব্যাগে রাখুন, এরপর একে একে সেখান থেকে একেকটি স্যাম্পল টেনে বের করুন (তবে পরেরবার স্যাম্পল তোলার আগেই আগেরটিকে আবার ব্যাগে ফেরত দিয়ে দিন)। এতে কিছু কিছু উদাহরণ বা এক্সাম্পল (examples) হয়তো দুইবার করে আসবে, আবার কিছু হয়তো একেবারেই বাদ পড়ে যাবে। এর ফলে, প্রতিটি গাছই মূলত এখানকার বাস্তব ডেটাগুলোর কিছুটা ভিন্ন এবং আলাদা রূপ দেখতে পাবে।
২. রেন্ডম ফিচার (Random features)
প্রতিবার ভাগ করার বা স্প্লিট করার (split) সময়, কোনো গাছই মূলত এর এখানকার সমস্ত ফিচারগুলোকে বিবেচনা করে না — এটি শুধুমাত্র এর একটি রেন্ডম সাবসেটের (random subset) ওপরই নজর দেয়। ধরা যাক আপনার কাছে মোট ১০টি ফিচার আছে, এক্ষেত্রে আপনার এখানকার প্রতিটি স্প্লিট হয়তো মাত্র ৩ বা ৪টি ফিচারের ওপর নজর দিতে পারে। এই জিনিসটি এখানকার গাছগুলোকে মূলত নতুন বা ভিন্ন কোনো প্যাটার্ন খুঁজতে বাধ্য করে এবং এই জিনিসটি এদের সবাইকে একই সাথে কোনো সাধারণ বা ডমিন্যান্ট (dominant) ফিচারের ওপর নির্ভর করা থেকে বাঁচিয়ে দেয়।
সাধারণ গাছের সাহায্যে তৈরি রেন্ডম ফরেস্ট (Random Forest from Simple Trees)
Key Metrics
ছোট কুইজ
পড়া চালিয়ে যান