বাইনারি শ্রেণিবদ্ধকরণ সমস্যাগুলিতে auc বনাম লগলসকে অনুকূলকরণ করা


12

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

উত্তর:


12

যেমনটি আপনি উল্লেখ করেছেন, এউসি হ'ল একটি র‌্যাঙ্কের পরিসংখ্যান (অর্থাত্ স্কেল ইনগ্রেন্টেট) এবং লগ হ্রাস একটি ক্রমাঙ্কন পরিসংখ্যান। কেউ তুচ্ছভাবে এমন মডেল তৈরি করতে পারে যা একই এউসি রয়েছে তবে পূর্বাভাসকৃত মানগুলি স্কেল করে অন্য কোনও মডেল লগ ক্ষতি কমাতে ব্যর্থ হয়। বিবেচনা:

auc <-  function(prediction, actual) {
  mann_whit <- wilcox.test(prediction~actual)$statistic
  1 - mann_whit / (sum(actual)*as.double(sum(!actual)))
}

log_loss <- function (prediction, actual) {
  -1/length(prediction) * sum(actual * log(prediction) + (1-actual) * log(1-prediction))
}

sampled_data <- function(effect_size, positive_prior = .03, n_obs = 5e3) {
  y <- rbinom(n_obs, size = 1, prob = positive_prior)
  data.frame( y = y,
              x1 =rnorm(n_obs, mean = ifelse(y==1, effect_size, 0)))
}

train_data <- sampled_data(4)
m1 <- glm(y~x1, data = train_data, family = 'binomial')
m2 <- m1
m2$coefficients[2] <- 2 * m2$coefficients[2]

m1_predictions <- predict(m1, newdata = train_data, type= 'response')
m2_predictions <- predict(m2, newdata = train_data, type= 'response')

auc(m1_predictions, train_data$y)
#0.9925867 
auc(m2_predictions, train_data$y)
#0.9925867 

log_loss(m1_predictions, train_data$y)
#0.01985058
log_loss(m2_predictions, train_data$y)
#0.2355433

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

for (effect_size in 1:7) {
  results <- dplyr::bind_rows(lapply(1:100, function(trial) {
                                    train_data <- sampled_data(effect_size)
                                    m <- glm(y~x1, data = train_data, family = 'binomial')
                                    predictions <- predict(m, type = 'response')
                                    list(auc = auc(predictions, train_data$y),
                                         log_loss = log_loss(predictions, train_data$y),
                                         effect_size = effect_size)
                                  }))
  plot(results$auc, results$log_loss, main = paste("Effect size =", effect_size))
  readline()
}

effect_1

এখানে চিত্র বর্ণনা লিখুন


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

1
আপনার মডেলটি কী অনুমান করে? লগ হ্রাস কেবল তখনই বোধগম্য হয় যদি আপনি উত্তরীয় সম্ভাবনা তৈরি করে থাকেন যা কোনও এউসি অনুকূলিত মডেলের পক্ষে সম্ভাবনা নেই। এউসির মতো র্যাঙ্কের পরিসংখ্যানগুলি কেবল পূর্বাভাসগুলির আপেক্ষিক ক্রম বিবেচনা করে, সুতরাং ভবিষ্যদ্বাণীগুলির মধ্যে ব্যবধানের মাত্রা অপ্রাসঙ্গিক; স্পষ্টতই এটি সম্ভাবনার ক্ষেত্রে নয়। আপনার AUC অনুকূলিত ভবিষ্যদ্বাণীগুলিতে আপনি যে কোনও স্কেলিং করেন তা এই সমস্যাটির সমাধান করতে হবে। তদ্ব্যতীত, এটি কেবলমাত্র এই পোস্টে বর্ণিত হিসাবে এলএলকে বিশ্বব্যাপী হ্রাস নয়, যুক্তিসঙ্গত উত্তর অনুমানের দিকে আপনার ভবিষ্যদ্বাণীগুলির ক্রমাঙ্কনকে সম্বোধন করে।
খোল

1
আপনি সম্ভবত পল্ট স্কেলিংয়ের শুরুতে পয়েন্ট হিসাবে আগ্রহী হতে পারেন ।
খোল

আমি এটি বিশ্বব্যাপী না বুঝতে পারি। আমি কেবল একটি রূপান্তর সেটআপ করতে চাই যার একটি প্যারামিটার থাকতে পারে এবং তারপরে এটি খেলতে পারি।
রাজেশ দাচিরাজু

1

ভারসাম্যহীন লেবেলের জন্য, নির্ভুলতা-পুনর্বিবেচনা বক্ররেখার ক্ষেত্রটি এওসি ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4349800/ বা পাইথন সাইকিট-শিখুন ডকস ) এর চেয়ে ভাল

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


2
আমি এখানে কয়েকটি কারণে ডাউনভোট করেছিলাম। 1) আপনার কোনও উত্স বা আপনার প্রথম বিবৃতিটির কারণ উল্লেখ করা উচিত। 2) নির্ভুলতার জন্য আপনি কীভাবে অনুকূলিত হন? এটি কি একটি অবনমিত মডেল তৈরি করবে না?
ম্যাথু ড্রুরি

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

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

1
হ্যাঁ, আমি এখন দেখছি কীভাবে "অনুকূলিতকরণ" বিভ্রান্ত হতে পারে। ওপি বলতে কী বোঝায় তা নিশ্চিত নয়। আমার জন্য, আপনি যেমন বলছেন ঠিক সেভাবে: সিভি দিয়ে হাইপারপ্রেমিটারগুলি টিউন করুন যাতে নির্ভুলতা সর্বাধিক হয়। এবং আমি মনে করি এটি আপনি স্ক্লেরনেও প্রয়োগ করেন।
পল

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