প্রশিক্ষণের ডেটাতে অসম গ্রুপ মাপের সাথে এসভিএম


12

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

যেহেতু এই ওজনগুলি কীভাবে নির্দিষ্ট করা উচিত সে সম্পর্কে আমি নিশ্চিত ছিল না, তাই আমি একটি ছোট পরীক্ষা স্থাপন করেছি:

  1. কিছু নাল ডেটা তৈরি করুন (এলোমেলো বৈশিষ্ট্য; গ্রুপ লেবেলের মধ্যে 2: 1 অনুপাত)
  2. class.weightsপরামিতি সেট সহ একটি এসএমএম ফিট করুন ।
  3. একগুচ্ছ নতুন নাল ডেটাসেটের পূর্বাভাস দিন এবং শ্রেণীর অনুপাত দেখুন।
  4. বিভিন্ন নাল প্রশিক্ষণের জন্য পুরো প্রক্রিয়াটি বহুবার প্রতিলিপি করুন।

আমি যে আর কোডটি ব্যবহার করছি তা এখানে:

nullSVM <- function(n.var, n.obs) {
    # Simulate null training data
    vars   = matrix(rnorm(n.var*n.obs), nrow=n.obs)
    labels = rep(c('a', 'a', 'b'), length.out=n.obs)
    data   = data.frame(group=labels, vars)

    # Fit SVM
    fit = svm(group ~ ., data=data, class.weights=c(a=0.5, b=1))

    # Calculate the average fraction of 'a' we would predict from null test data
    mean(replicate(50, table(predict(fit, data.frame(matrix(rnorm(n.var*n.obs), nrow=n.obs))))[1])) / n.obs
}

library(e1071)
set.seed(12345)
mean(replicate(50, nullSVM(50, 300)))

এই পুরো জিনিসটি থেকে আমি একটি আউটপুট ~ 0.5 আশা করছিলাম, তবে, আমি যা পাই তা তা নয়:

> mean(replicate(50, nullSVM(50, 300)))
[1] 0.6429987

class.weightsপ্যারামিটারের কাজ করছে, সাজানোর নিম্ন আমি ওজন হিসেবে a, নিম্ন এটা এই সিমুলেশন মধ্যে প্রতিনিধিত্ব করা হয় (এবং যদি আমি বাদ class.weightsএটিকে 1 পাসে ফেরৎ) ... কিন্তু আমি বুঝতে পারছি না কেন কেবল 1 ওজন ব্যবহার করছে: 2 ( প্রশিক্ষণের ডেটা যা 2: 1) এর মধ্যে 50% পর্যন্ত নেমে আসে না।

যদি আমি এসভিএমগুলিকে ভুল বোঝাবুঝি করি তবে কেউ কি এই বিষয়টি ব্যাখ্যা করতে পারেন? (বা কিছু রেফ পাঠান?)

যদি আমি এটি ভুল করে চলেছি তবে কেউ কি আমাকে class.weightsপ্যারামিটারটি ব্যবহার করার সঠিক উপায় বলতে পারেন ?

এটি সম্ভবত একটি বাগ হতে পারে? (আমি মনে করি না, যেহেতু আমি এই সফ্টওয়্যারটি এবং অন্তর্নিহিত লিবসভিএমটি যথেষ্ট পরিপক্ক হতে বুঝতে পেরেছি)


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

উত্তর:


7

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

আরও গুরুত্বপূর্ণ, সি এর সর্বোত্তম মানগুলি ডেটা নির্ভর dependent আপনার যদি ভারসাম্যহীন ক্লাস থাকে তবে আপনি প্রতিটি শ্রেণীর জন্য মানের অনুপাত ঠিক করতে এবং সমস্ত নিদর্শনগুলির তুলনায় গড় জরিমানা অনুকূল করতে পারেন।


এইবার বুঝতে পারছি. যখন আমি বৈশিষ্ট্যগুলির সংখ্যা হ্রাস করি এবং এই সিমুলেশনে পর্যবেক্ষণের সংখ্যা বাড়িয়ে তুলি, আউটপুট মানটি 0.5 এর কাছাকাছি চলে যায়। যাইহোক, এটি কখনও তেমনভাবে আসে না - এমনকি 900 সারি এবং কেবল 1 কলামও।
জন কলবি

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

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

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

0

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


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