মডেল ইভাল্যুয়েশনের ধারণা
মডেল তৈরি করার আগে এই কথা কেন?
মডেল ঠিকমতো কাজ না করলে মডেল করে লাভ কী?
মডেল ইভ্য়ালুয়েশন করতে চাইলে -
১. আমাদের কাছে থাকা ডাটা থেকে অথবা, ২. নতুন ডাটা যোগাড় করে
এখন আমাদের একটা মেশিন লার্নিং মডেল তৈরি করার পালা। এই মডেলটা পুরানো ডাটা থেকে শিখে নতুন ডাটার ওপর ফুলের প্রজাতি বের করার চেষ্টা করবে। প্রথম কথা হচ্ছে, আমাদের হাতের কাছে নতুন ডাটা আছে কি? নেই। আমাদের কাছে ওই ১৫০টাই ডাটা আছে। বাড়তি ডাটা পেতে চাইলে আমাদেরকে এখন নতুন করে মাঠে নামতে হবে। তার আগে কি মডেল তৈরি করা সম্ভব? আর সম্ভব হলেও সেই মডেলটা ঠিকমতো কাজ করছে কিনা সেটা জানবো কিভাবে? আমাদের মডেলটা যে বিশ্বাসযোগ্য সেটা প্রমাণ না করলে এই মডেলের গ্রহণযোগ্যতা তৈরি হবে না।
১. মডেল তৈরি করা সম্ভব ২. মডেলকে ভাগ করে কিছু ডাটা দিয়ে ট্রেনিং করানো যাবে ৩. বাকি ডাটা থেকে ‘লেবেল’ ফেলে দিয়ে সেটা থেকে অ্যাক্যুরেসি বের করা সম্ভব
মনে আছে আমার আগের বইয়ের টাইটানিক প্রজেক্ট এর কথা? সেখানে ক্যাগল কিন্তু আমাদেরকে আলাদা করে ‘টেস্ট’ এবং ‘ট্রেনিং’ ডাটা সেট দিয়েছিল। [বইটা পুরোটাই অনলাইনে আছে] সেখানে আমরা ট্রেনিং ডাটা দিয়ে মডেল তৈরি করার পর টেস্ট ডাটা দিয়ে পরীক্ষা করেছিলাম। যেহেতু, টেস্ট ডাটাসেটের উত্তর ক্যাগলের কাছে ছিল, সে কারণে তার অ্যাক্যুরেসি পাওয়া গেছে ক্যাগলে সাবমিট করার পর পরই। সেটাও তো সম্ভব নয় এখানে। যদি না আমাদের ১৫০টা রেকর্ডকে দুই ভাগে ভাগ করি।
সমস্যা হচ্ছে - ১৫০টা ডাটা ট্রেনিং এর জন্য ব্যবহার করলে এই একই ডাটা ব্যবহার করতে পারব না আমাদের মডেলকে ‘ইভালুয়েট’ করার জন্য। আচ্ছা, আপনি বলুন, গতবারের প্রশ্নপত্র দিয়ে আমাদেরকে কখনো পরীক্ষা দিতে দেয়া হয়েছে কিনা? এটা হয়নি কারণ আমরা আগের বছরের প্রশ্নগুলো সলভ করেছিলাম আগে। মডেলের ভাষায় একে বলা হয় ‘ওভারফিটিং’। যেই ডাটাসেট দিয়ে মডেল তৈরি করা হয়, সেটা দিয়ে ‘এভালুয়েট’ করলে মডেল আগের ডাটাকে পুঙ্খানুপুঙ্খভাবে মনে রাখবে। আমি হলে তাই করতাম। ফলাফল, ১০০ তে ১০০। আমরা তো সেটা চাইবো না। আগের প্রশ্নের উত্তর সে যদি মনে রেখে উত্তর দেয় তাহলে তো সেই মডেলটা ‘জেনারেলাইজড’ হলো না। মডেলটা শুধুমাত্র এই ডাটার জন্য প্রযোজ্য। মানে এই মডেল সব ডাটার জন্য কাজ করবে না। আমাদেরকে এমন একটা মডেল তৈরি করতে হবে যা নতুন ডাটার জন্য (যে ডাটা আগে সে দেখেনি) কাজ করবে।
মডেলের পারফরম্যান্স ‘এভালুয়েট’ করার জন্য আমাদের সেই রকম নতুন ডাটার দরকার যার ‘লেবেল’ আছে। মানে প্রশ্নের সাথে উত্তর দেয়া আছে। প্রশ্নের সাথে উত্তর দেয়া না থাকলে পরীক্ষক কিভাবে একজনকে এভালুয়েট করবে? আগে আলাপ করেছি - সেটা তখনই সম্ভব যখন আমাদের কাছের ১৫০টা ডাটাকে আলাদা করে ফেলব দুটো ভাগে। ট্রেনিং সেট এবং টেস্ট সেট। ১৫০টা ডাটার এক অংশ ব্যবহার করব মডেল তৈরীর জন্য। সেটা হবে আমাদের ট্রেনিং সেট। বাকি অংশটা আমরা কাজে লাগাবো মডেলকে আলাদাভাবে এভালুয়েট করার জন্য। অনেক তত্ত্ব কথা হলো। এবার কাজের পালা।
প্রস্তাবনা
Last updated
Was this helpful?