কখন কোন মেশিন লার্নিং অ্যালগোরিদম ব্যবহার করব? পর্ব-৩
Gradient Boosting: বুস্টিং অ্যালগরিদম গত বিশ বছরে চালু করা সবচেয়ে শক্তিশালী ডাটা সায়েন্স টপিক গুলোর মধ্যে একটি। গ্রেডিয়েন্ট বুস্টিং হল একটি supervised মেশিন লার্নিং অ্যালগরিদম যা classification এবং regression উভয় ধরনের সমস্যার জন্য ব্যবহৃত হয়। এটি একটি সমন্বিত কৌশল যা lassification এবং regression এর জন্য একটি শক্তিশালী মডেল তৈরি করতে একাধিক weak learners অ্যালগোরিদম ব্যবহার করে। এটি পুর্ববর্তী মডেল গুলোর মধ্যে প্রিডিকশান Error টা কমিয়ে নতুন মডেল বানাতে সাহায্য করে থাকে। গ্রেডিয়ান্ট বুস্টিংয়ের যে জিনিসগুলোর প্রইয়োজন হয় সেগুলো হল;
A Loss Function: এটি মুলত actual values এবং predicted values এর মাঝে পার্থক্য ।
Regression Loss functions গুলো হল:
- Mean Absolute Errors (MAE)
- Mean Square Error(MSE)
Binary Classification Loss Functions গুলো হল::
- Binary Cross Entropy Loss
- Hinge Loss
A weak learner : ডিসিশন ট্রি গ্রেডিয়েন্ট বুস্টিং অ্যালগরিদমে weak learner হিসেবে ব্যবহার করা হয়।
An additive model: গ্রেডিয়েন্ট বুস্টিং এ ডিসিশন ট্রি অ্যালগরিদমে ব্যবহার করা হলে একজেস্টিং মডেলের কোনো প্রব্লেম হয় না।
- AdaBoost: AdaBoost হচ্ছে একটি বুস্টিং এলগোরিদম যেটা Random Forest এর উপর নির্ভরশীল। অনন্য অনন্য বুস্টিং এলগোরিদমের মত এটি ও প্রিভিয়াস মডেলের আইটারেশনের উপর নির্ভরশীল। কথায় আছে When nothing works, boosting does. বিভিন্ন কম্পিটিশনে যেমন Kaggle or hackathons এ AdaBoost হল বুস্টিং এর জগতে first stepping stone। AdaBoost রিগ্রেশন এবং ক্লাসিফিকেশন দুধরনের সমস্যার জন্যই ব্যবহার হয় যেখানে single split হিসেবে Decision Tress গুলো weak learner আকারে এবং decision stumps নামে ব্যবহার হয়। মোট কথা হল AdaBoost আপনাকে অনেক গুলো weak classifier এর সমন্বয়ে একটি Strong Classifer বানাতে সাহায্য করবে।
- XGBoost: XGBoost এর অর্থ হল “এক্সট্রিম গ্রেডিয়েন্ট বুস্টিং” এবং বড় ডেটাসেট পরিচালনা, রান টাইম এভেলেটি,মিসিং ভ্যালু হ্যান্ডলিং দক্ষতা(মিসিং ভ্যালু হল রিয়েল ওয়াল্ড ডাটার অন্যতম সমস্যা) এবং অনেক মেশিন লার্নিং কাজে অত্যাধুনিক পারফরম্যান্স অর্জন করার ক্ষমতার কারণে এটি সবচেয়ে জনপ্রিয় এবং বহুল ব্যবহৃত মেশিন লার্নিং অ্যালগরিদম হয়ে উঠেছে। রিগ্রেশন এবং ক্লাসিফিকেশন দুধরনের সমস্যার জন্যই এটি ব্যবহার হয়। এটি হাইলি কাস্টামাইজএভেল এবং ফাইন টিউনিং এর মাধ্যমে আপনি পেতে পারেন অপ্টিমাইজ পারফরমেন্স। যেহেতু এটি একটি বুস্টিং এলগোরিদম সুতরাং এটি বুঝার আগে আপনাকে ডিসিশান ট্রি ভালভাবে বুঝতে হবে।
- Neural Networks: একটি নিউরাল নেটওয়ার্ক হল অ্যালগরিদমগুলির একটি সিরিজ যা একটি প্রক্রিয়ার মাধ্যমে ডেটার সেটে অন্তর্নিহিত সম্পর্কগুলিকে চিনতে চেষ্টা করে যা মানব মস্তিষ্কের মত কাজ করে। ফরকাস্টিং, স্টক মার্কেট প্রেডিকশন, ফ্রড ডিটেকশন সহ অনেক কাজে এটি ব্যবহার হচ্ছে। বিভিন্ন ধরনের নিউরাল নেটওয়ার্ক অ্যালগরিদম রইয়েছে। যেমন;
Feed-Forward Neural Networks
Convolutional Neural Networks
Recurrent Neural Networks
Deconvolutional Neural Networks
Modular Neural Networks
Probabilistic Neural Networks ইত্যাদি।
এছাড়া নিউরাল নেটওইয়ার্ক নিয়ে আমার এই ব্লগটি ও পড়তে পারেন। লিংক এখানে
পরবর্তী পর্বে আমরা আর ও অন্য অ্যালগোরিদম গুলো সম্পর্কে জানব। Stay with me.