এখানে উত্তরের সংযোজন হিসাবে আমি দুটি লিঙ্ক পেয়েছি যা সত্যিই আমাকে বুঝতে সাহায্য করেছে যে এটি কেন ভাল পদ্ধতি নয়:
সম্পাদনা করুন: অনুরোধ হিসাবে লিঙ্কগুলির বিষয়বস্তুর সংক্ষিপ্ত বিবরণ:
মনে করুন আমি একটি শ্রেণিবদ্ধ প্রশিক্ষণ দিচ্ছি, এবং আমার ১০০০ টি নমুনার একটি ডেটাসেট রয়েছে, যার প্রতিটিতে 1 মিলিয়ন বৈশিষ্ট্য রয়েছে। আমি এই সমস্তগুলি প্রক্রিয়া করতে পারি না, সুতরাং আমার কম বৈশিষ্ট্য প্রয়োজন (বলুন, আমি 300 টি বৈশিষ্ট্য গণনা করতে পারি)। আমার বাহ্যিক-নমুনা, বাস্তব-বিশ্বের নির্ভুলতার সঠিকভাবে অনুমান করতে আমার কাছে 100 টি নমুনার একটি আউট-আউট টেস্ট সেট রয়েছে।
আমি যদি আমার 1 মিলিয়ন বৈশিষ্ট্যগুলিকে 300 এর নিচে ফিল্টার করি তবে আমার সম্পূর্ণ ডেটাসেটের লক্ষ্যগুলির সাথে সর্বাধিক সম্পর্কযুক্ত সেই বৈশিষ্ট্যগুলি নির্বাচন করে, আমি একটি ভুল করছি (কারণ আমি ওভারফিটিং প্রবর্তন করছি যা পরে ক্রস ভ্যালিডেশন দ্বারা সনাক্ত করা যায় না)। আমার আউট-আউট সেটটি একটি খারাপ নির্ভুলতার মানটি ফিরিয়ে দিয়ে এটি দেখায়।
উপরের লিঙ্কগুলি অনুসারে, এটি করার সঠিক উপায় হ'ল আমার ডেটাসেটকে একটি প্রশিক্ষণ সেট এবং ক্রস-বৈধকরণ সেটগুলিতে ভাগ করা এবং তারপরে এই প্রশিক্ষণ সেটের উপর ভিত্তি করে আমার মডেলটি (বৈশিষ্ট্যগুলি ফিল্টারিং ইত্যাদি) টিউন করা এবং এটি সম্পর্কিত সিভি স্কোর। আমি যদি কে-ফোল্ডগুলি ব্যবহার করছি, প্রতিবার আমি একটি বিভক্ত / ভাঁজ তৈরি করার সময় অবশ্যই স্ক্র্যাচ থেকে টিউন করব এবং তারপরে ফলাফলগুলি গড়তে হবে।
প্রাথমিকভাবে, আপনি নিম্নলিখিতগুলি করেন:
- হোল্ড-আউট সেট হিসাবে আপনার ডেটাসেটের একটি অংশ আলাদা করে রাখুন।
- আপনার ডেটাসেটের অবশিষ্ট অংশ (এখন থেকে টি 1 বলা হয়) কে-ভাঁজগুলিতে ভাগ করুন।
- আই = 1 থেকে কে পর্যন্ত একটি লুপে নিম্নলিখিতটি করুন:
- আপনার সিভি সেট হিসাবে আমি ভাঁজ এবং আপনার প্রশিক্ষণ সেট হিসাবে বাকি নমুনা (এরপরে তি বলা হয়) নির্বাচন করুন।
- বৈশিষ্ট্য ইঞ্জিনিয়ারিং এবং বৈশিষ্ট্য নির্বাচন যা করা তা করুন: ফিল্টার বৈশিষ্ট্য, সেগুলি একত্রিত করুন ইত্যাদি
- আপনার সিভি সেট (বর্তমান ভাঁজ, সিভিআই বলা হয়) এবং আপনার বর্তমান প্রশিক্ষণ টিটিকে উভয়কে উপযুক্ত বৈশিষ্ট্যগুলির সাথে রূপান্তর করুন।
- আপনার মডেলটিকে প্রশিক্ষণ সেটটিতে প্রশিক্ষণ দিন
- বর্তমান ভাঁজ, সিভিআই থেকে স্কোর পান। এই স্কোরটি সমস্ত স্কোরকে ধারণ করে একটি তালিকায় যুক্ত করুন।
- এখন, আপনার তালিকায় প্রতিটি ভাড়ার স্কোর রয়েছে, সুতরাং কে-ফোল্ডসের স্কোর পেয়ে আপনি এটি গড় করেছেন।
আপনি সম্পূর্ণ প্রশিক্ষণ সেট, টি 1 এর পরিবর্তে উপ-প্রশিক্ষণ সেটটিতে টি, লুপের ভিতরে ফিচার ইঞ্জিনিয়ারিং সম্পাদন করা সত্যিই গুরুত্বপূর্ণ।
এর কারণ হ'ল আপনি যখন টিয়ের জন্য ফিচার / ফিচার ইঞ্জিনিয়ার ফিট করেন, আপনি সিভিআইতে পরীক্ষা করেন, যা সেই মডেলের জন্য অদেখা। অন্যদিকে, আপনি যদি টি 1-তে ফিট / ফিচার ইঞ্জিনিয়ার হন তবে আপনার চয়ন করা যে কোনও সিভি হ'ল সাবসেট টি 1 হতে হবে এবং তাই আপনি আশাবাদী পক্ষপাতদুষ্ট হবেন, অর্থাৎ আপনি উপকার পাবেন, কারণ আপনি একই ডেটা নমুনায় প্রশিক্ষণ নিচ্ছেন এবং পরীক্ষা করছেন।
সত্যিই একটি ভাল StackExchange উত্তর এই এক, যা সত্যিই এটা গভীরতা এবং আরো কোডের একটি উদাহরণ দিয়ে ব্যাখ্যা করে। আরো দেখুন এই একটি সংযোজন হিসেবে।