আমি একটি ডেটা বিজ্ঞান প্রতিযোগিতায় কাজ করছি যার জন্য আমার পরীক্ষার সেটটি বিতরণ প্রশিক্ষণের সেট থেকে আলাদা। আমি প্রশিক্ষণের সেট থেকে পর্যবেক্ষণগুলিকে সাবস্ক্রিপশন করতে চাই যা পরীক্ষার সেটটির সাথে সাদৃশ্যপূর্ণ।
কিভাবে আমি এটি করতে পারব?
আমি একটি ডেটা বিজ্ঞান প্রতিযোগিতায় কাজ করছি যার জন্য আমার পরীক্ষার সেটটি বিতরণ প্রশিক্ষণের সেট থেকে আলাদা। আমি প্রশিক্ষণের সেট থেকে পর্যবেক্ষণগুলিকে সাবস্ক্রিপশন করতে চাই যা পরীক্ষার সেটটির সাথে সাদৃশ্যপূর্ণ।
কিভাবে আমি এটি করতে পারব?
উত্তর:
দুর্দান্ত প্রশ্ন, এটিই মেশিন লার্নিং দৃষ্টান্তে "কোভারিয়েট শিফট", বা "মডেল ড্রিফট" বা "ননস্টেশনারিটি" ইত্যাদি নামে পরিচিত।
ভবিষ্যতের পূর্বাভাসের জন্য একটি মেশিন লার্নিং মডেল তৈরি করার জন্য যে সমালোচনা অনুমান করা যায় তার মধ্যে একটি হ'ল অদেখা ডেটা (পরীক্ষা) প্রশিক্ষণের ডেটা হিসাবে একই বিতরণ থেকে আসে! যাইহোক, বাস্তবে এটি বরং সাধারণ অনুমান সহজেই ভেঙে যায় এবং আসন্ন ডেটা (এর বিতরণ) সময়ের সাথে বিভিন্ন কারণে পরিবর্তিত হয়। যারা এই খুব গুরুত্বপূর্ণ সমস্যার সাথে পরিচিত নাও হতে পারেন তাদের জন্য, আমি এখানে বা পোস্ট দেখার জন্য উত্সাহ দিচ্ছি !
আমার কাছে আপনার প্রশ্নটি একই বিভাগে আসে। যদিও আমার কাছে নিখুঁত সমাধান নেই (অফার করার একটি বাস্তবায়ন), তবে আমি মনে করি আপনি দেখতে পারেন:
তাত্ক্ষণিক আপডেট (একটি ভাল সমাধান) : আমি সেই ওজনগুলি সন্ধানের জন্য গবেষণামূলক গবেষণাপত্রের (শেষ পয়েন্ট) KLIEP অ্যালগরিদমের পাইথন বাস্তবায়ন পেয়েছি । এটি বরং ব্যবহার করা সহজ বলে মনে হচ্ছে! মূলত এটি ওজন (কেএলআইপি অ্যালগরিদমের মাধ্যমে) রেখে প্রশিক্ষণের প্রতিশ্রুতি দেয় যাতে ট্রেন এবং পরীক্ষার অনুরূপ বিতরণ হওয়ার অনুমান যতটা সম্ভব সত্যকে ধারণ করে।
আমি প্রশিক্ষণের সেট থেকে পর্যবেক্ষণগুলিকে সাবস্ক্রিপশন করতে চাই যা পরীক্ষার সেটটির সাথে সাদৃশ্যপূর্ণ।
আমি নিশ্চিত না যে আপনি এটি করতে চাইবেন। পুরো উদ্দেশ্যটি বরং আপনার অ্যালগরিদমকে প্রশিক্ষণ দেওয়া যাতে এটি অদেখা ডেটা ভাল করে তোলে।
সাধারণত, একজনের তার ট্রেনের ডেটা (উদাহরণস্বরূপ ট্রেনের ডেটা অনুসারে পরীক্ষার ডেটা মানককরণ করা ) এর সাথে অন্য কোনও উপায়ে নয় তার পরীক্ষার ডেটাটি মানিয়ে নেওয়া উচিত । অনুশীলনে, আপনি আপনার পরীক্ষার ডেটা জানেন না ।
ট্রেন সেট সাবমলিং সেরা সমাধান হতে পারে না!
তত্ত্বাবধানে শেখার কাজে টেস্ট / এক্সিকিউশন সেট এবং ট্রেনিং সেট বিতরণ / বৈশিষ্ট্যগুলির মধ্যে পার্থক্য খুব সাধারণ (এটি একটি কারণ যা কাগলির মতো প্রতিযোগিতা চ্যালেঞ্জপূর্ণ)। সে কারণেই আমরা বলি যে পূর্বের পারফরম্যান্সগুলি (কেবলমাত্র) ভবিষ্যতের পারফরম্যান্স অনুমানের জন্য গাইড হিসাবে ব্যবহৃত হতে পারে তবে এটি এটি নির্দেশ / গ্যারান্টি দেয় না । অতএব, জেনারাইজেবল মডেলগুলিকে সর্বদা সূক্ষ্ম সুরযুক্ত মডেলের চেয়ে বেশি পছন্দ করা হয়েছে যা ট্রেনের (উপ) সেটে খুব ভাল পারফর্ম করতে পারে তবে অদৃশ্য ডেটাতে খারাপ ব্যবহার করে।
যদিও এই ধরনের পার্থক্যটি স্বাভাবিক, অতীত এবং ভবিষ্যতের নমুনার মধ্যে খুব বড় ব্যবধানটি ধারণা ড্রিফ্টের উদাহরণ হিসাবে উল্লেখ করা যেতে পারে যা নিজেই একটি সক্রিয় গবেষণা ক্ষেত্র। আপনার প্রশ্নটি দেওয়া, আমি বিচার করতে পারছি না যে আপনার মামলাটি একটি সাধারণ এমএল কেস বা ধারণা ড্রিফট সত্যিই ঘটছে।
এগুলি আমার পরামর্শ:
উচ্চ সাধারণীকরণের ক্ষমতা সহ বেশ কয়েকটি মডেলকে প্রশিক্ষণ দিন। আপনার ট্রেনের ডেটাসেট থেকে বুটস্ট্র্যাপ নমুনা ব্যবহার করে , আপনি সহজেই ত্রুটির পক্ষপাত এবং বৈকল্পিক উপাদানগুলি গণনা করতে পারেন । মনে রাখবেন যে আপনি নিম্ন-পক্ষপাতী নয় বরং উচ্চ-ভেরিয়েন্স মডেলগুলির তুলনায় (যেখানে আপনার প্রশিক্ষণের (উপ) সেটকে উপস্থাপন করতে পারে ) পরিবর্তে নিম্ন-বৈকল্পিক মডেলটি (যেখানে ডেটা পরিবর্তনগুলি এর কার্য সম্পাদনে প্রান্তিক প্রভাব ফেলবে ) সন্ধান করছেন। এখন, আপনি সেরা অ্যালগরিদম নির্বাচন করতে পারেন এবং তাদের পরীক্ষার সেটটির বিপরীতে মূল্যায়ন করতে পারেন। উল্লেখ্য, প্রশিক্ষণের সময় আমাদের পরীক্ষা সেটের দিকে নজর দেওয়া উচিত নয়!
বেশ কয়েকটি এলোমেলো ডাউনস্যাম্পলিংয়ের পরিবর্তে মানককরণ / নরমালাইজেশন এবং বৈশিষ্ট্য নির্বাচন / ইঞ্জিনিয়ারিংয়ের সন্ধান করুন। এই কৌশলগুলি আরও সাধারণ মডেলগুলি শেখার ক্ষেত্রে ব্যবহারিক হতে পারে। উদাহরণস্বরূপ, কখনও কখনও বৈশিষ্ট্য ডোমেনের পরিসর সময়ের সাথে সাথে পরিবর্তিত হতে পারে যখন বিতরণের আকার (যা কিছু হয়) প্রায় একই থাকে (যেমন একই বিতরণ যা বাম বা ডানদিকে স্থানান্তরিত হয়)। এই জাতীয় ক্ষেত্রে, একটি সাধারণ মানককরণ (যেমন ট্রেনের ম্যাপিং এবং পূর্বনির্ধারিত স্থানে পরীক্ষার নমুনাগুলি যেমন [0,1] বিভিন্ন ম্যাপিং ফাংশন ব্যবহার করে) লক্ষণগুলি হ্রাস করতে পারে।
সিস্টেমেটিক ডাউনস্যাম্পলিং কেবলমাত্র উপযুক্ত সমাধান হতে পারে যদি আপনি সমস্যাটি সম্পর্কে কিছু জ্ঞানের ভিত্তিতে এটি করেন (কেবলমাত্র পরীক্ষার ডেটাসেটের আরও ভাল নির্ভুলতা পাওয়ার উদ্দেশ্যে নয়)। উদাহরণস্বরূপ, আপনি হয়ত জানেন যে ট্রেনের ডেটাতে রেকর্ডগুলির কিছু দূরবর্তী অঞ্চল থেকে স্যাম্পল করা হয়েছে বা নির্দিষ্ট কারণ দ্বারা প্রভাবিত হয়েছে যাগুলির কোনওটি ভবিষ্যতে ঘটবে না (পরীক্ষার ডেটা সংগ্রহের ক্ষেত্রে)। সেক্ষেত্রে আপনি সেই নমুনাগুলি অপ্রাসঙ্গিক হতে পারেন যেহেতু আপনি যে এই ধরণের নিদর্শন ভবিষ্যতে দেখবেন না বলে আপনি আত্মবিশ্বাসী (আমার অর্থ পরীক্ষার সেটটি অনুসন্ধান করার পরিবর্তে প্রশিক্ষণের উপসেট নির্বাচনের পিছনে যুক্তি থাকা উচিত) বাস্তবে, আপনার এতে অ্যাক্সেস নেই)। এই জাতীয় ক্ষেত্রে, আমি এটিকে বহিরাগত অপসারণ বলছি বরং ডাউনস্যাম্পলিংয়ের চেয়ে।
পাইথনে একটি ভাল প্যাকেজ রয়েছে (সাইকিট শিখুন)
http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
আপনি এই প্যাকেজটি ব্যবহার করে প্রশিক্ষণ সেট থেকে আপনার পর্যবেক্ষণগুলি নমুনা করতে পারেন।