ভারসাম্যহীন ডেটার জন্য এসভিএম


15

আমি আমার ডেটাসেটে সাপোর্ট ভেক্টর মেশিনগুলি (এসভিএম) ব্যবহার করার চেষ্টা করতে চাই। যদিও সমস্যাটি চেষ্টা করার আগে, আমাকে সতর্ক করা হয়েছিল যে এসভিএমগুলি অত্যন্ত ভারসাম্যহীন ডেটাতে ভাল সম্পাদন করে না। আমার ক্ষেত্রে, আমি 95-98% 0 এবং 2-5% 1 এর মতো থাকতে পারি।

আমি সংস্থানসমূহ / ভারসাম্যহীন ডেটাতে এসভিএম ব্যবহারের বিষয়ে কথা বলে এমন সংস্থানগুলি সন্ধান করার চেষ্টা করেছি, তবে আমি যেগুলি খুঁজে পেয়েছি তা হ'ল 'স্পার্সএসভিএম' (যা স্বল্প পরিমাণে সমর্থন ভেক্টর ব্যবহার করে)।

আমি আশা করছিলাম যে কেউ সংক্ষিপ্তভাবে ব্যাখ্যা করতে পারে:

  1. এসভিএম কতটা ভাল এমন ডেটাসেটের সাথে প্রত্যাশা করবে
  2. যা, যদি কোনও হয় তবে এসভিএম অ্যালগরিদমটিতে অবশ্যই পরিবর্তনগুলি করা উচিত
  3. কি সম্পদ / কাগজপত্র এটি আলোচনা

উত্তর:


15

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

libsvmআপনি ট্যাগ হিসাবে যুক্ত করেছেন বিশেষত , সেখানে একটি পতাকা রয়েছে যা আপনাকে শ্রেণি ওজন নির্ধারণ করতে দেয় ( -wআমি বিশ্বাস করি, তবে ডকগুলি পরীক্ষা করে দেখুন )।

অবশেষে, ব্যক্তিগত অভিজ্ঞতা থেকে আমি আপনাকে বলতে পারি যে আমি প্রায়শই দেখতে পাই যে কোনও এসভিএম ওজন সংশোধনের সাথে বা ছাড়াই খুব মিল খুঁজে পাবে।


আমাকে এটিকে
মারধর করুন

@ তবে আমার ভারসাম্যহীন ডেটা একই সমস্যা এবং আমি 99% এর যথার্থতা পাই। আমি ভারসাম্যকে লিবিএসভিএম-এ ব্যবহার করেছি। আপনি উল্লেখ করেছেন যে মূল্যায়ন মেট্রিকগুলিও ওজন করা উচিত। আমি জানতে চেয়েছিলাম কীভাবে আমরা মূল্যায়ন মেট্রিকগুলিকে ওজন করতে পারি।
হানি গোক

1
@ হানিগক মূলত আপনি প্রতিটি শ্রেণীর জন্য নির্ভুলতার জন্য আলাদাভাবে গণনা করতে চান এবং এর গড় নিতে চান। সুতরাং উদাহরণস্বরূপ, আপনার যদি 10 ক্লাস এ এবং 90 ক্লাস বি থাকে এবং আপনি মানক যথার্থতার সাথে সমস্ত নমুনা বি ক্লাস বি হতে অনুমান করেছেন90/100=0.9, তবে ভারিত নির্ভুলতায় আপনার থাকতে হবে 0.5(0/10+90/90)=0.5.
Bitwise

7

SVMs work fine on sparse and unbalanced data. Class-weighted SVM is designed to deal with unbalanced data by assigning higher misclassification penalties to training instances of the minority class.


5

In the case of sparse data like that SVM will work well.

As stated by @Bitwise you should not use accuracy to measure the performance of the algorithm.

Instead you should calculate the precision, recall and F-Score of the algorithm.


May you please expand on your reasoning? Also, how would you go about measuring the F-score once the classification (on the test set) has completed? Thanks
Spacey

To measure the FScore on the test set you will need to manually classify it, and then compute recall and precision using the manual data vs the predicted data. What would you like me to expand, why SVM works well with sparse data?
alexandrekow

Yes, why SVM works on sparse data would be nice as well. Thanks
Spacey

"Simply having sparse features does not present any problem for the SVM. One way to see this is that you could do a random rotation of the co-ordinate axes, which would leave the problem unchanged and give the same solution, but would make the data completely non-sparse (this is in part how random projections work" (stats.stackexchange.com/questions/23470/…)
alexandrekow
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.