তদারকি করা মেশিন লার্নিংয়ে শ্রেণির ভারসাম্যহীনতা


47

এটি সাধারণভাবে একটি প্রশ্ন, কোনও পদ্ধতি বা ডেটা সেটের সাথে সুনির্দিষ্ট নয়। 0 টির সংখ্যা 90% এর কাছাকাছি এবং 1 এর সংখ্যা আপনার ডেটাশেটে 10% এর কাছাকাছি যেখানে পর্যবেক্ষিত মেশিন শেখার ক্ষেত্রে আমরা কোনও শ্রেণি ভারসাম্যহীন সমস্যাটি কীভাবে মোকাবিলা করব we আমরা কীভাবে শ্রেণিবদ্ধকে প্রশিক্ষণ দেব?

আমি অনুসরণ করার একটি উপায় হ'ল ডেটাसेटকে সুষম করে তুলতে এবং তারপরে শ্রেণিবদ্ধকে প্রশিক্ষণ দেওয়া এবং একাধিক নমুনার জন্য এটি পুনরাবৃত্তি করা।

আমি অনুভব করি এটি এলোমেলো, এই ধরণের সমস্যার সাথে যোগাযোগ করার কোনও কাঠামো আছে কি?

উত্তর:


45

অনেকগুলি ফ্রেমওয়ার্ক এবং অ্যাপ্রোচ আছে। এটি একটি পুনরাবৃত্তি সমস্যা।

উদাহরণ:

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

প্রযুক্তিগত জটিলতার ক্রমবর্ধমান ক্রম - বিশদের স্তরের কিছু হালকা পর্যালোচনা:

ওহ, এবং যাইহোক, 90% / 10% ভারসাম্যহীন নয়। কার্ড লেনদেনের জালিয়াতি ডেটাসেটগুলি প্রায়শই 99.97% / 0.03% এ ভাগ করা হয়। এটি ভারসাম্যহীন।


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

রিসোর্সের জন্য লুকাশ ধন্যবাদ। অনেক সাহায্য করে I আমার হাতে একটি অদ্ভুত সমস্যা আছে যেখানে আমার সমস্ত নমুনা '1' লেবেলযুক্ত। তবে বাস্তবে এই নমুনার একটি ন্যূনতম অপরিষ্কারতা রয়েছে, অর্থাৎ কিছু রেকর্ড রয়েছে যা আসলে '0' বলে মনে করা হয় তবে '1' হিসাবে লেবেলযুক্ত। আমি বিশ্বাস করি এই ধরণের সমস্যা এক শ্রেণির শ্রেণিবিন্যাসের অন্তর্গত। আমার বোধগম্যতা কি সঠিক? তাদের সনাক্ত করার জন্য কি কোনও সাধারণ কাঠামো ব্যবহৃত হয়, প্রথমদিকে আমি ক্লাস্টারিংয়ের চেষ্টা করছিলাম কিন্তু এটি কাজ করছে না।
এনজি_2১

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

13

এটি গুরুতরভাবে শেখার পদ্ধতির উপর নির্ভর করে। বেশিরভাগ সাধারণ উদ্দেশ্য পদ্ধতির সাথে এটি মোকাবেলার এক (বা বেশ কয়েকটি) উপায় রয়েছে। একটি সাধারণ সংশোধন হ'ল সংখ্যালঘু শ্রেণীর উপর উচ্চতর বিয়োগক্ষেত্রের জরিমানা বরাদ্দ করা, শ্রেণিবদ্ধকারীকে তাদের সনাক্ত করতে বাধ্য করা (এসভিএম, লজিস্টিক রিগ্রেশন, নিউরাল নেটওয়ার্কস ...)।

নমুনা পরিবর্তন করা আপনার সম্ভাবনার মতো একটি সম্ভাবনাও। সেক্ষেত্রে সংখ্যালঘু শ্রেণিকে ওভার স্যাম্পলিং করাই সংখ্যাগরিষ্ঠ শ্রেণির নিম্নচয়ের চেয়ে ভাল সমাধান।

এলোমেলো বনাঞ্চলের মতো কিছু পদ্ধতিতে কোনও পরিবর্তন করার প্রয়োজন নেই।


ধন্যবাদ। আপনি যে কোনও সংস্থার দিকে নির্দেশ করতে পারেন যেখানে এটি কয়েকটি উদাহরণ দিয়ে ব্যাখ্যা করা হয়েছে। স্ক্র্যাচ থেকে অ্যালগরিদম কোডিংয়ের অবলম্বন না করে আর / পাইথনে এটি অর্জন করার কোনও উপায় আছে কি?
এনজি_2১

1
এই আর প্যাকেজে প্রথম ফাংশনটি দেখুন: cran.r-project.org/web/packages/unbalanced/unbalanced.pdf
লুকাস গ্যালিন্ডো

7
কেন এলোমেলো বন কোন সংশোধন প্রয়োজন হয় না? আমি মনে করি আপনি এখনও শ্রেণিক ওজন নির্ধারণ করতে পারবেন
ম্যাক

4

প্রায়শই সমস্যাটি সংখ্যালঘু শ্রেণির ক্ষেত্রে ফ্রিকোয়েন্সি নয় তবে পরম পরিমাণে হয়। বৈশিষ্ট্যগুলির পরিবর্তনের তুলনায় আপনি যদি লক্ষ্যটিতে ভিন্নতা অর্জন করেন না, তবে এর অর্থ হতে পারে যে অ্যালগোরিদম জিনিসগুলিকে খুব নির্ভুলভাবে শ্রেণিবদ্ধ করতে পারে না।

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

আপনার যখন সম্ভাব্যতা অনুমানকারী থাকে তখন আপনি তথ্যের তাত্ত্বিক ভিত্তিতে বা ব্যবসায়িক মানের সংমিশ্রণের ভিত্তিতে শ্রেণিবিন্যাসের সিদ্ধান্ত নিতে পারেন।


1

দুটি কৌশল যুক্ত করুন: ১. সিডিএফ ব্যবহার করুন, আপনার প্রশিক্ষণের ডেটাতে ফ্রিকোয়েন্সিটি গণনা করুন বা খুব বড় বৈধতা ব্যবহার করুন (যদি আপনার পরীক্ষার সেটটি পরিবর্তন না হয় তবে বৈধতা সেটটিতে প্রশিক্ষণের সেট সহ একই বিতরণ থাকতে হবে), তারপরে আপনার ভবিষ্যদ্বাণী বাছাই করুন এবং পান এক শ্রেণীর জন্য প্রথম এক্স% (আপনার গণনা পূর্বে ফ্রিকোয়েন্সি) এবং অন্যগুলি অন্য / 2. ভারিত নমুনা, মডেলটি ভারী নমুনা শ্রেণীর দিকে ঝুঁকবে, আপনি নমুনা বৈকল্পিক যেমন ব্যবহার করতে পারেন eg ওজন্টি = 1/2 (1- (ভিম্যাক্স - ভি) / ভিএমএক্স)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.