নিম্নলিখিতটি বর্ণিত হয়েছে কিনা এবং (যে কোনও উপায়ে) যদি খুব ভারসাম্যহীন টার্গেট ভেরিয়েবলের সাথে ভবিষ্যদ্বাণীপূর্ণ মডেল শেখার জন্য যদি কল্পনাযোগ্য পদ্ধতি বলে মনে হয় তবে কি কেউ জানেন?
প্রায়শই ডেটা মাইনিংয়ের সিআরএম অ্যাপ্লিকেশনগুলিতে আমরা এমন একটি মডেল সন্ধান করব যেখানে সংখ্যাগরিষ্ঠ (নেতিবাচক শ্রেণির) তুলনায় ইতিবাচক ঘটনা (সাফল্য) খুব বিরল। উদাহরণস্বরূপ, আমার কাছে 500,000 উদাহরণ থাকতে পারে যেখানে কেবল 0.1% ইতিবাচক শ্রেণীর (যেমন গ্রাহক কেনা) of সুতরাং, একটি ভবিষ্যদ্বাণীপূর্ণ মডেল তৈরি করার জন্য, একটি পদ্ধতি হ'ল ডেটা নমুনা করা যার মাধ্যমে আপনি সমস্ত ধনাত্মক শ্রেণীর দৃষ্টান্ত রাখেন এবং কেবলমাত্র নেতিবাচক শ্রেণির উদাহরণের নমুনা রাখেন যাতে ধনাত্মক থেকে নেতিবাচক শ্রেণীর অনুপাত 1 এর কাছাকাছি হয় (সম্ভবত 25%) 75% ধনাত্মক থেকে নেতিবাচক)। ওভার স্যাম্পলিং, আন্ডার স্যাম্পলিং, স্মোট ইত্যাদি এগুলি সাহিত্যের সমস্ত পদ্ধতি।
আমি যে বিষয়ে আগ্রহী তা হ'ল উপরের বেসিক স্যাম্পলিং কৌশলটি সংযুক্ত করা কিন্তু নেতিবাচক শ্রেণীর ব্যাগিংয়ের সাথে ome কিছু সহজভাবে যেমন:
- সমস্ত ধনাত্মক শ্রেণীর দৃষ্টান্ত রাখুন (উদাহরণস্বরূপ 1,000)
- ভারসাম্য নমুনা তৈরি করার জন্য নেতিবাচক সংঘর্ষের উদাহরণগুলির নমুনা (উদাহরণস্বরূপ 1,000)।
- মডেল ফিট
- পুনরাবৃত্তি
এর আগে কি কেউ শুনছেন? ব্যাগিংয়ের ব্যতীত যে সমস্যাটি মনে হয় তা হ'ল 500,000 থাকা অবস্থায় নেতিবাচক শ্রেণীর কেবলমাত্র 1,000 টি উদাহরণ স্যাম্পলিং করা হ'ল ভবিষ্যদ্বাণীকারী স্থানটি অপ্রয়োজনীয় এবং আপনার সম্ভাব্য ভবিষ্যদ্বাণীমূলক মান / নিদর্শনগুলির উপস্থাপনা নাও পেতে পারেন। ব্যাগিং এটিকে সাহায্য করবে বলে মনে হচ্ছে।
আমি আরপিআর্টের দিকে তাকিয়েছিলাম এবং কিছুই "ব্রেক" করে না যখন নমুনাগুলির মধ্যে একটিতে ভবিষ্যদ্বাণীকারীর জন্য সমস্ত মান থাকে না (তখন সেই ভবিষ্যদ্বাণীকারী মানগুলির সাথে উদাহরণগুলির পূর্বাভাস দেওয়ার সময় ভাঙা হয় না:
library(rpart)
tree<-rpart(skips ~ PadType,data=solder[solder$PadType !='D6',], method="anova")
predict(tree,newdata=subset(solder,PadType =='D6'))
কোন চিন্তা?
আপডেট: আমি একটি বাস্তব বিশ্বের ডেটা সেট নিয়েছি (বিপণন ডাইরেক্ট মেল প্রতিক্রিয়া ডেটা) এবং এলোমেলোভাবে এটিকে প্রশিক্ষণ এবং বৈধকরণে বিভক্ত করেছি। 618 ভবিষ্যদ্বাণীকারী এবং 1 বাইনারি লক্ষ্য (খুব বিরল) রয়েছে।
Training:
Total Cases: 167,923
Cases with Y=1: 521
Validation:
Total Cases: 141,755
Cases with Y=1: 410
আমি প্রশিক্ষণের সেট থেকে সমস্ত ইতিবাচক উদাহরণ (521) এবং ভারসাম্যপূর্ণ নমুনার জন্য একই আকারের নেতিবাচক উদাহরণগুলির এলোমেলো নমুনা নিয়েছি। আমি একটি rpart গাছ ফিট:
models[[length(models)+1]]<-rpart(Y~.,data=trainSample,method="class")
আমি এই প্রক্রিয়াটি 100 বার পুনরাবৃত্তি করেছি। তারপরে এই 100 টি মডেলের প্রতিটিটির জন্য বৈধতা নমুনার ক্ষেত্রে Y = 1 এর সম্ভাব্যতার পূর্বাভাস। চূড়ান্ত প্রাক্কলনের জন্য আমি কেবলমাত্র 100 সম্ভাব্যতার গড়পড়তা। আমি বৈধতা সেটটিতে সম্ভাব্যতাগুলি কেটে ফেলেছি এবং প্রতিটি সিদ্ধান্তে Y = 1 (মডেলটির র্যাঙ্কিংয়ের সক্ষমতা নির্ধারণের জন্য traditionalতিহ্যবাহী পদ্ধতি) কত শতাংশের ক্ষেত্রে গণনা করেছি।
Result$decile<-as.numeric(cut(Result[,"Score"],breaks=10,labels=1:10))
এখানে অভিনয়:
এটি কোনও ব্যাগিংয়ের সাথে কীভাবে তুলনা করা হয়েছে তা দেখতে, আমি কেবলমাত্র প্রথম নমুনা (সমস্ত ধনাত্মক কেস এবং একই আকারের এলোমেলো নমুনা) সহ বৈধতা নমুনার পূর্বাভাস দিয়েছিলাম। স্পষ্টতই, নমুনাযুক্ত ডেটা হোল্ড আউট বৈধকরণের নমুনায় কার্যকর হওয়ার জন্য খুব বিচ্ছিন্ন বা ওভারফিট।
বিরল ইভেন্ট এবং বৃহত্তর এন এবং পি হয় যখন ব্যাগিং রুটিন এর কার্যকারিতা প্রস্তাব।