মেশিন লার্নিং এর জন্যে মডেল সিলেকশন, কমন ভুল ও উত্তরণের উপায়
আমরা যেহেতু লার্নিং অ্যালগরিদমকে ট্রেনিং সেট দিয়ে ফিট করাই, সেহেতু শুধু ট্রেনিং এরর এর উপর নির্ভর করে একটি মডেল সিলেক্ট করলে সেটা ভাল হবে না।
কারণ এতে ওভারফিট হতে পারে, যেটা টেস্টিং সেট এর ক্ষেত্রে খারাপ পারফরমান্স দিতে পারে। ট্রেনিং সেট দিয়েই টেস্ট করলে যে এরর আসবে, অন্য ডাটাসেট দিয়ে টেস্ট করলে তার থেকে বেশী এরর আসবে।
ধরি, আমার কাছে N সংখ্যক মডেল আছে। যেগুলো দেখতে নিচের মতঃ
$h_{\theta{}}(x) = \theta{} + \theta_{1}x$
$h_{\theta{}}(x) = \theta{} + \theta_{1}x + \theta_{2}x^2$
$h_{\theta{}}(x) = \theta{} + \theta_{1}x + \theta_{2}x^2 + \theta_{3}x^3$
$h_{\theta{}}(x) = \theta{} + \theta_{1}x + \theta_{2}x^2 + \theta_{3}x^3 + \theta_{4}x^4 $
.
.
.
$h_{\theta{}}(x) = \theta{} + \theta_{1}x + \theta_{2}x^2 + \theta_{3}x^3 + \theta_{4}x^4 + … + \theta_{n}x^n$
উপরোক্ত পলিনোমিয়াল ইকুয়েশন গুলোর মধ্যে সর্বাপেক্ষা ভাল টি আমাদের সিলেক্ট করতে হবে।
এক্ষেত্রে বহুল ব্যবহৃত যেটা নিয়ম অনেকই অনুসরণ করে, তা হল, একটি ডাটাসেট এর ৬০% ট্রেনিং এর জন্যে, আর বাদবাকি ৪০% টেস্টিং এর জন্যে। এরপর, যে মডেল থেকে টেস্টিং অংশের জন্যে এরর কম আসে, সেটাকেই ফাইনাল মডেল হিসেবে সিলেক্ট করে। কিন্তু, এটা একটা ভুল পদ্ধতি।
####সর্বাপেক্ষা ভাল ও নিরপেক্ষ রেজাল্ট পাওয়ার ক্ষেত্রে, মডেল সিলেক্ট করার জন্যে, নিম্নোক্ত ভাগে ভাগ করতে হবেঃ
ট্রেনিং সেটঃ ৬০%
ক্রস ভ্যালিডেশন সেটঃ ২০%
টেস্টিং সেটঃ ২০%
এখন, নিম্নোক্ত পদ্ধতিতে তিনটি ধাপ অনুসারে নিরপেক্ষ ও ভাল এরর ভ্যালু সেট তৈরি করতে হবেঃ
- ১। প্রত্যেক পলিনোমিয়াল ইকুয়েশন এর জন্যে $\theta$র প্যারামিটার গুলো ট্রেনিং সেট দিয়ে অপটিমাইজ করব;
- ২। ক্রস ভ্যালিডেশেন ডাটাসেট দিয়ে নুন্যতম এরর এর পলিনোমিয়াল ইকুয়েশন খুঁজে বের করব এবং এটাই হবে আমাদের সিলেক্টেট মডেল;
- ৩। সর্বোপরি, টেস্ট ডাটাসেট দিয়ে এরর হিসেব করবে, এবং এটাই ফাইনাল রেজাল্ট।
কেন এই পদ্ধতি টা নিরপেক্ষ?
কারণ এই পদ্ধতিতে, টেস্ট রেজাল্ট নিরপেক্ষ এবং ব্লাইন্ড। অনেকগুলো টেস্ট রেজাল্ট থেকে সর্বনিম্নটা সিলেক্ট করি নাই।