অত্যন্ত ভারসাম্যহীন সেটিংয়ে ব্যয়-সংবেদনশীল শিক্ষার জন্য পরামর্শ


15

কয়েক মিলিয়ন সারি এবং 100 ডলার কলাম সহ আমার একটি ডেটাসেট রয়েছে। আমি ডেটাসেটের প্রায় 1% উদাহরণ সনাক্ত করতে চাই, যা একটি সাধারণ শ্রেণীর অন্তর্গত। আমার ন্যূনতম নির্ভুলতা সীমাবদ্ধতা রয়েছে, তবে খুব অসম্পূর্ণ ব্যয়ের কারণে আমি কোনও বিশেষ স্মরণে খুব আগ্রহী নই (যতক্ষণ না আমি 10 টি ইতিবাচক ম্যাচ না দিয়ে থাকি!)

আপনি এই সেটিং এ সুপারিশ করবে এমন কিছু পদ্ধতির কী আছে? (কাগজপত্রের লিঙ্কগুলি স্বাগত, বাস্তবায়নের লিংকগুলি প্রশংসা করেছে)

উত্তর:


15

ভারসাম্যহীন শ্রেণিবদ্ধ সমস্যাগুলিতে শেখার সহায়ক পর্যালোচনা হতে পেরেছি তিনি এবং গার্সিয়া (২০০৯) । এখানে কয়েকটি অবশ্যই স্পষ্টভাবে নয়-বিস্তৃত বিষয় বিবেচনা করতে হবে:

ডেটা-ভিত্তিক পদ্ধতি:

কেউ সংখ্যাগরিষ্ঠ শ্রেণিকে নিম্নরূপ বা সংখ্যালঘু শ্রেণিকে নমুনা দিতে পারে। (ব্রেইম্যান উল্লেখ করেছিলেন যে এটি আনুষ্ঠানিকভাবে অ-ইউনিফর্মের ভুল বিবরণী ব্যয় বরাদ্দ করার সমতুল্য।) এটি সমস্যার কারণ হতে পারে: বোঝার ফলে শিক্ষার্থী সংখ্যাগরিষ্ঠ শ্রেণীর দিকগুলি মিস করতে পারে; ওভার স্যাম্পলিং অতিরিক্ত চাপের ঝুঁকি বাড়ায়।

এই বিষয়গুলি হ্রাস করার জন্য "অবহিত আন্ডার স্যাম্পলিং" পদ্ধতি রয়েছে। এর মধ্যে একটি হ'ল ইজিইনসেমেবল , যা স্বতন্ত্রভাবে সংখ্যাগরিষ্ঠ শ্রেণীর বেশ কয়েকটি উপসেট নমুনা দেয় এবং সংখ্যালঘু শ্রেণীর সমস্ত তথ্যের সাথে প্রতিটি উপসেটকে একত্রিত করে একাধিক শ্রেণিবদ্ধকারী করে।

স্মোট (সিনথেটিক সংখ্যালঘু ওভারসাম্পলিং টেকনিক) বা এসএমওটি বুস্ট, (উত্সাহের সাথে স্মোটের সংমিশ্রণ) বৈশিষ্ট্যটির জায়গাতে নিকটতম প্রতিবেশী তৈরি করে সংখ্যালঘু শ্রেণির সিন্থেটিক দৃষ্টান্ত তৈরি করে। ডিএমডাব্লুআর প্যাকেজে এসএমটিই আর প্রয়োগ করা হয়েছে (যা লুইস টর্গোয়ের বই " আরের সাথে ডেটা মাইনিং, কেস স্টাডির সাথে শেখা" সিআরসি প্রেস 2016 ) এর সাথে রয়েছে।

মডেল ফিটিং পদ্ধতির

আপনার ক্ষতির ফাংশনে শ্রেণিবদ্ধ ওজন প্রয়োগ করুন (সংখ্যালঘু ক্ষেত্রে বড় ওজন)।

গাছ-ভিত্তিক পদ্ধতির জন্য, আপনি সিলেস্ক এট আল-এর পক্ষে যেমন নোড অশুচি ফাংশন হিসাবে হেলিংগার দূরত্ব ব্যবহার করতে পারেন । "হেল্পিংজার দূরত্বের সিদ্ধান্তের গাছগুলি দৃ rob় এবং স্কিউ-সংবেদনশীল" " ( এখানে ওয়েকা কোড ))

একটি শ্রেণীর শ্রেণিবদ্ধকারী ব্যবহার করুন , হয় (মডেলের উপর নির্ভর করে) একটি শ্রেণীর জন্য সম্ভাবনার ঘনত্ব বা সীমানা শিখুন এবং অন্য শ্রেণিকে বিদেশী হিসাবে বিবেচনা করুন।

অবশ্যই, মডেল বিল্ডিংয়ের জন্য মেট্রিক হিসাবে নির্ভুলতা ব্যবহার করবেন না। কোহেনের কাপা যুক্তিসঙ্গত বিকল্প।

মডেল মূল্যায়ন পদ্ধতির

যদি আপনার মডেল ভবিষ্যদ্বাণী করা সম্ভাব্যতা বা অন্যান্য স্কোরগুলি প্রদান করে, এমন সিদ্ধান্ত সিদ্ধান্ত বেছে নিয়েছে যা ত্রুটিগুলিতে উপযুক্ত ট্রেড অফ করে (প্রশিক্ষণ ও পরীক্ষার থেকে কোনও ডেটাসেট ব্যবহার করে)। আর-তে, প্যাকেজ অপটিমালকাটপয়েন্টগুলি একটি কাটঅফ সিদ্ধান্ত নেওয়ার জন্য ব্যয়-সংবেদনশীলগুলি সহ অনেকগুলি অ্যালগরিদম প্রয়োগ করে।


বিস্তারিত উত্তরের জন্য ধন্যবাদ। আমি নিম্নরূপ চেষ্টা করার চেষ্টা করেছি এবং খারাপভাবে ব্যর্থ হয়েছি। মডেলগুলি দুর্দান্ত-নমুনা কর্মক্ষমতা দেখায়, তবে ভারসাম্যহীনতা এখনও পরীক্ষার সেটে উপস্থিত রয়েছে (এবং আসল বিশ্ব ডেটা আমি শেষ পর্যন্ত ব্যবহার করব) সুতরাং মডেলগুলির ওওএস নির্ভুলতা ভয়াবহ। আমি ক্লাস-নির্দিষ্ট ওজনও চেষ্টা করেছি, তবে আমার অ্যাপ্লিকেশনটিতে মিথ্যা নেগেটিভের চেয়ে মিথ্যা পজিটিভের জন্য সহজেই পরিমাণমতো উচ্চতর দাম জড়িত । এক শ্রেণির শ্রেণিবদ্ধ হিসাবে, আমি একটি রৈখিক এসএমএম ফিট করার চেষ্টা করেছি (অ-রৈখিকগুলি খুব ধীর হয়) এবং
এটিতে

1
আমি তোমার জন্য অনুভব করছি উচ্চ পরিমাণে নির্ভুলতা যদি আপনার বেশিরভাগ ক্ষেত্রে নেতিবাচক হয় তবে তা শক্ত। আমি শ্রেণি-নির্দিষ্ট ওজন ব্যবহার করতাম (যেমন শ্রেণীর ক্ষেত্রে ভগ্নাংশের বিপরীতে আনুপাতিক সমানুপাতিক) এবং সিদ্ধান্তের প্রান্তিকতা নির্ধারণের জন্য ত্রুটি-প্রকার-নির্দিষ্ট ওজনগুলি সংরক্ষণ করতে পারি। আশা করি আপনি কোহেনের কপা দিয়ে মডেল নির্বাচনের সঠিকতা না দিয়ে ক্রস-বৈধতা ব্যবহার করছেন। সত্যিকারের উপলব্ধ ট্রেডঅফগুলি বোঝার জন্য আমি সমস্ত কাট অফে পাশের নির্ভুলতা এবং সমৃদ্ধকরণ (ধনাত্মক কেসগুলির যথার্থতা / অনুপাত) সহ ক্যালিগ্রেশন ডেটাগুলির ক্লাসগুলির জন্য সম্ভাবনার ঘনত্বটি কল্পনা করব।
ম্যাটব্যাগ 17'14

দুর্দান্ত উত্তর, আপনাকে ধন্যবাদ। আমি উল্লিখিত EasyEnsemble এর অনুরূপ একটি কৌশলটি বেশ কিছু সময়ের জন্য ব্যবহার করছি তবে এটি সম্পর্কে সন্দেহ ছিল (সিমুলেটেড ডেটাতে বুদ্ধিমান পারফরম্যান্স সত্ত্বেও)। এখন আমি জানি এটি বোধগম্য হয়।
অায়োরগো

5

আমার উপলব্ধি হ'ল এটি মেশিন লার্নিং সম্প্রদায়ের গবেষণার একটি সক্রিয় ক্ষেত্র এবং এর কোনও দুর্দান্ত উত্তর নেই, বরং সম্ভাব্য সমাধানের একটি বৃহত এবং ক্রমবর্ধমান সংখ্যক। আপনি যে নির্দিষ্ট অ্যালগোরিদমগুলি বিবেচনা করছেন তা উল্লেখ করে আপনি সম্ভবত আরও ভাল উত্তর পেতে চলেছেন।

যদি আপনি কোনও প্যারামিট্রিক মডেল (লজিস্টিক রিগ্রেশন) ব্যবহার করেন তবে এটি কোনও সমস্যার কম হওয়া উচিত এবং আপনার ক্ষতির ফাংশনের উপর ভিত্তি করে আপনি মাত্রাটি পৃথক করতে পারেন (মিথ্যা নেগেটিভের জন্য মিথ্যা পজিটিভের দাম)

আপনি যদি মেশিন লার্নিং অ্যালগরিদম ব্যবহার করেন তবে এটি আরও জটিল। "ফলিত ভবিষ্যদ্বাণীমূলক মডেলিং" এর ১ 16 তম অধ্যায়ে ম্যাক্স কুহন এই ইস্যুটির সংক্ষিপ্ত বিবরণে যথাযথ প্রচেষ্টা করেছেন। তবে সংক্ষেপে চ্যালেঞ্জিং বিষয়। আপনি যদি বইটি কিনতে না চান, এই কোডটি এই অধ্যায়ের জন্য অ্যাপ্লাইডপ্রিডিকটিভ মডেলিং প্যাকেজে আর কোড উপলব্ধ এবং এটি আর এবং আপনার ব্যবহৃত অ্যালগরিদমের সাথে আপনার পরিচিতির উপর নির্ভর করে যথেষ্ট হতে পারে।

সাধারণত আলোচনাটি আন্ডার স্যাম্পলিং / ওভার স্যাম্পলিং +/- ব্যয়-সংবেদনশীল অ্যালগরিদমকে ঘিরে। জোস-বুস্টের মতো পরিবর্তনের সাথেও সম্ভব।
এই ধরণের আলোচনার উদাহরণ: চেন এট আল "ভারসাম্যহীন ডেটা শিখতে র্যান্ডম ফরেস্ট ব্যবহার করা" http://statistics.berkeley.edu/sites/default/files/tech-report/666.pdf


প্রান্তিকের পরিবর্তনের সমস্যাটি হ'ল এটি কোনও রিগ্রেশন মডেলের ইন্টারসেপ্ট পরিবর্তন করার মতো। বাস্তবে, আমি ব্যয় বিবেচনায় রাখতে ওয়েট ভেক্টরটি ভালভাবে বদলাতে চাই। তবে যদি আমি ইতিমধ্যে গুরুতর ভারসাম্যহীনতার কারণে এটি করি তবে আমি 0 যথার্থতার সাথে শেষ করছি! আমি কোনও অ্যালগরিদমে স্থির হইনি এবং যদি তারা প্রতিশ্রুতি দেয় তবে কাটা গবেষণা গবেষণা বাস্তবায়নের সংস্থান আছে resources আপনার প্রস্তাবিত বইটি আমি একবার দেখে নেব।
em70

অধ্যায়টি তাই-তাই। সলিড প্রচেষ্টা, তবে সংক্ষেপে কঠিন বিষয়। বিভিন্ন পদ্ধতিতে প্রচুর অসমর্থিত দাবি প্রকাশিত হয়েছে। আমি মনে করি এলোমেলো বনাঞ্চলে স্ট্র্যাটেড আন্ডারস্যাম্পলিং মেশিন লার্নিং দৃষ্টিকোণ থেকে একটি ভাল শুরু। কোড বইয়ের প্যাকেজে রয়েছে।
চার্জ

0

আপনি সাইকিট-লার্ন এর বাস্তবায়ন একবার দেখে নিতে পারেন। শ্রেণী_ ওজন যুক্তির দিকে মনোযোগ দিন যা ক্লাস ওজন বা 'অটো' এর অভিধানের মান থাকতে পারে:

শ্রেণি sklearn.svm.SVC (সি = 1.0, কার্নেল = 'আরবিএফ', ডিগ্রি = 3, গামা = 0.0, কোফ 0 = 0.0, সঙ্কুচিত = সত্য, সম্ভাব্যতা = মিথ্যা, টোল = 0.001, ক্যাশে_সাইজ = 200, শ্রেণি-ওজন = কিছুই নেই = ভুয়া, সর্বোচ্চ_আপনার = -1, এলোমেলো_স্টেট = কিছুই নেই)

আপনি ক্লাস_ওয়েট আর্গুমেন্টের মান নিয়ে খেলতে পারেন যা কোনও শ্রেণীর ওজন অভিধান বা 'অটো' হতে পারে। 'অটো' মোডে লার্নিং অ্যালগরিদম স্বয়ংক্রিয়ভাবে প্রতিটি শ্রেণীর মধ্যে ওজনের প্রতিটি নমুনার সংখ্যার ভিত্তিতে ওজন নির্ধারণ করবে।

সাইকিট-লার্নে আরও কয়েকটি শ্রেণিবদ্ধকরণ অ্যালগরিদম রয়েছে, যার মধ্যে কিছু শ্রেণীর ওজন গ্রহণ করে।


ক্লাসের ওজন কীভাবে ওপির লক্ষ্য অর্জনে ব্যবহার করা যেতে পারে সে সম্পর্কে আপনি আরও বলতে পারেন? আমি মনে করি এটি আপনার পোস্টে অন্তর্নিহিত, তবে এটি এখনও কোনও উত্তর নয়।
গুং - মনিকা পুনরায়

হ্যাঁ, কিছু ডকুমেন্টেশনের দিকে নজর দিলে বা এর একটি অভিধান মান থাকতে পারে যার বর্গ ওজন রয়েছে শ্রেণিক_বাট যুক্তির একটি মান 'অটো' থাকতে পারে। 'অটো' ক্ষেত্রে লার্নিং অ্যালগরিদম নিজেই প্রত্যেকটির নমুনার সংখ্যা অনুসারে প্রতিটি শ্রেণীর ওজন আবিষ্কার করে।
অ্যাশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.