মেশিন লার্নিং (Machine Learning) এ ক্রস ভ্যালিডেশন (Cross Validation) একটি বহুল ব্যবহৃত শব্দ। সাধারণত কোন মডেলকে যাচাই বাছাই করার জন্য কিছু টেস্টিং ডাটার ( Testing Data) প্রয়োজন পড়ে। অনেক সময় দেখা যায় যে ট্রেইনিং ডাটার (Training Data) সাথে টেস্টিং ডাটার কোন মিল নেই, তখন অনেকাংশে ঐ মডেলটি ভূল কিছু প্রিডিক্ট (Predict) করতে পারে। আবার অনেক সময় ট্রেইনিং বা টেস্টিং এর জন্য পর্যাপ্ত ডাটাও পাওয়া যায়না; এ সকল সমস্যা থেকে পরিত্রাণ পাবার জন্যই ক্রস ভ্যালিডেশনের উদ্ভব।
ক্রস ভ্যালিডেশনে একই ডাটাকে ভাগ করে নিয়ে কিছু অংশ ট্রেইনিং এবং কিছু অংশ টেস্টিং এর জন্য ব্যবহার করা হয়, আর এই পদ্ধতিটাকেই ক্রস ভ্যালিডেশন বলা হয়। পর্যায়ক্রমে সকল ট্রেইনিং ডাটা একসময় টেস্টিং ডাটা হিসাবে ব্যবহার করা হয় আবার সকল টেস্টিং ডাটাই ট্রেইনিং ডাটা হিসাবে ব্যবহার করা হয়। এর ফলে উপরের দুটি সমস্যারই সমাধান হয়ে যায়।
K – ফোল্ড ক্রস ভ্যালিডেশন (K – Fold Cross Validation)
ডেটাগুলোকে ট্রেইনিং এবং টেস্টিং এর জন্য ভাগ করে নেওয়ার প্রক্রিয়াকেই ফোল্ড (Fold) বলা হয়। K – ফোল্ড বলতে মূলত K অনুপাত বোঝায়। ধরা যাক আমাদের কাছে যে ডেটা আছে সেটাকে আমরা পাঁচ ভাগে ভাগ করে একভাগ টেস্টিং এ এবং বাকি চার ভাগ ট্রেইনিং এ ব্যবহার করব। তাহলে এই ফোল্ডিং কে বলা হবে 5 – ফোল্ড ক্রস ভ্যালিডেশন (5 -Fold Cross Validation)।
10 – ফোল্ড ক্রস ভ্যালিডেশন (10 – Fold Cross Validation)
অধিকাংশ ক্ষেত্রেই 10 – ফোল্ড ক্রস ভ্যালিডেশন ব্যবহার করা হয়। ধরা যাক, আমাদের হাতে ১০০ টি স্যাম্পল (Sample) আছে, এটাকে আমরা 10 – ফোল্ড ক্রস ভ্যালিডেট (Validate) করতে চাই। তাহলে আমাদের এই ১০০ স্যাম্পলকে ১০ ভাগে ভাগ করতে হবে। অর্থাৎ, প্রতি ভাগে থাকবে ১০ টি করে স্যাম্পল। অর্থ্যাৎ আমরা ৯০ টি স্যম্পলকে ট্রেইনিং এ ব্যবহার করব এবং ১০ টি স্যাম্পলকে টেস্টিং হিসেবে ব্যবহার করব, এবং এটার পুনরাবৃত্তি ঘটাবো।