আরওসি বক্ররেখাটি তির্যকটি অতিক্রম করে


12

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

এই প্রভাবটির ব্যাখ্যা / ব্যাখ্যা কী হতে পারে?

ধন্যবাদ


1
কী আপনাকে একটি আরওসি বক্ররেখা সম্পর্কে যত্নশীল করে তুলেছে? সরাসরি সম্ভাব্যতার মডেলের পরিবর্তে কী আপনাকে শ্রেণিবদ্ধী হিসাবে বেছে নিয়েছে?
ফ্রাঙ্ক হ্যারেল

উত্তর:


18

যখনই উভয় ফলাফলের জন্য স্ট্যান্ডার্ড বিচ্যুতি একই হয় আপনি তখনই একটি দুর্দান্ত প্রতিসামান্য আরওসি প্লট পাবেন। যদি সেগুলি ভিন্ন হয় তবে আপনি বর্ণিত ঠিক ফলাফলটি পেতে পারেন।

নিম্নলিখিত গণিত কোড এটি প্রদর্শন করে demonst আমরা ধরে নিই যে একটি লক্ষ্য প্রতিক্রিয়ার স্থানে একটি সাধারণ বিতরণ দেয় এবং এই শব্দটি একটি সাধারণ বিতরণও দেয় তবে বাস্তুচ্যুত হয়। আরওসি প্যারামিটারগুলি সিদ্ধান্তের মানদণ্ডের বাম বা ডানদিকে গাউসিয়ান বক্ররেখার নীচের অঞ্চল দ্বারা নির্ধারিত হয়। এই মানদণ্ডের পরিবর্তন করা আরওসি বক্ররেখা বর্ণনা করে।

Manipulate[
 ParametricPlot[{CDF[NormalDistribution[4, \[Sigma]], c], 
                 CDF[NormalDistribution[0, 3], c]
                }, {c, -10, 10}, 
                Frame -> True, 
                Axes -> None, PlotRange -> {{0, 1}, {0, 1}}, 
                Epilog -> Line[{{0, 0}, {1, 1}}]], 
 {{\[Sigma], 3}, 0.1, 10, Appearance -> "Labeled"}]

এটি সমান স্ট্যান্ডার্ড বিচ্যুতি সহ: এখানে চিত্র বর্ণনা লিখুন

এটি বরং স্বতন্ত্র ব্যক্তিদের সাথে রয়েছে:

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

বা আরও কয়েকটি পরামিতি সহ খেলতে:

Manipulate[
 ParametricPlot[{CDF[NormalDistribution[\[Mu]1, \[Sigma]1], c], 
   CDF[NormalDistribution[\[Mu]2, \[Sigma]2], c]}, {c, -100, 100}, 
  Frame -> True, Axes -> None, PlotRange -> {{0, 1}, {0, 1}}, 
  Epilog -> Line[{{0, 0}, {1, 1}}]], {{\[Mu]1, 0}, 0, 10, 
  Appearance -> "Labeled"},
 {{\[Sigma]1, 4}, 0.1, 20, Appearance -> "Labeled"},
 {{\[Mu]2, 5}, 0, 10, Appearance -> "Labeled"},
 {{\[Sigma]2, 4}, 0.1, 20, Appearance -> "Labeled"}]

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


1

উচ্চ এফপিআর সহ বক্ররেখার অংশে নেতিবাচক উদাহরণগুলির একটি স্ট্রিং থাকা এই জাতীয় বক্ররেখা তৈরি করতে পারে। এটি যতক্ষণ না আপনি আরওসি বক্র তৈরির জন্য সঠিক অ্যালগরিদম ব্যবহার করছেন।

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

Fawcett | আরওসি বক্ররেখা প্লট করা হচ্ছে


1

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


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

## data
Cond.1 = c(2.9, 3.0, 3.1, 3.1, 3.1, 3.3, 3.3, 3.4, 3.4, 3.4, 3.5, 3.5, 3.6, 3.7, 3.7,
           3.8, 3.8, 3.8, 3.8, 3.9, 4.0, 4.0, 4.1, 4.1, 4.2, 4.4, 4.5, 4.5, 4.5, 4.6,
           4.6, 4.6, 4.7, 4.8, 4.9, 4.9, 5.5, 5.5, 5.7)
Cond.2 = c(2.3, 2.4, 2.6, 3.1, 3.7, 3.7, 3.8, 4.0, 4.2, 4.8, 4.9, 5.5, 5.5, 5.5, 5.7,
           5.8, 5.9, 5.9, 6.0, 6.0, 6.1, 6.1, 6.3, 6.5, 6.7, 6.8, 6.9, 7.1, 7.1, 7.1,
           7.2, 7.2, 7.4, 7.5, 7.6, 7.6, 10, 10.1, 12.5)
dat    = stack(list(cond1=Cond.1, cond2=Cond.2))
ord    = order(dat$values)
dat    = dat[ord,]  # now the data are sorted

## logistic regression models
lr.model1 = glm(ind~values,             dat, family="binomial")  # w/o a squared term
lr.model2 = glm(ind~values+I(values^2), dat, family="binomial")  # w/  a squared term
lr.preds1 = predict(lr.model1, data.frame(values=seq(2.3,12.5,by=.1)), type="response")
lr.preds2 = predict(lr.model2, data.frame(values=seq(2.3,12.5,by=.1)), type="response")

## here I plot the data & the 2 models
windows()
  with(dat, plot(values, ifelse(ind=="cond2",1,0), 
                 ylab="predicted probability of condition2"))
  lines(seq(2.3,12.5,by=.1), lr.preds1, lwd=2, col="red")
  lines(seq(2.3,12.5,by=.1), lr.preds2, lwd=2, col="blue")
  legend("bottomright", legend=c("model 1", "model 2"), lwd=2, col=c("red", "blue"))

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

এটি দেখতে সহজ যে লাল মডেলটি ডেটার কাঠামোটি অনুপস্থিত। নীচে চক্রান্ত করার সময় আমরা আরওসি বক্ররেখাগুলি দেখতে কেমন তা দেখতে পারি:

library(ROCR)  # we'll use this package to make the ROC curve

## these are necessary to make the ROC curves
pred1 = with(dat, prediction(fitted(lr.model1), ind))
pred2 = with(dat, prediction(fitted(lr.model2), ind))
perf1 = performance(pred1, "tpr", "fpr")
perf2 = performance(pred2, "tpr", "fpr")

## here I plot the ROC curves
windows()
  plot(perf1, col="red",  lwd=2)
  plot(perf2, col="blue", lwd=2, add=T)
  abline(0,1, col="gray")
  legend("bottomright", legend=c("model 1", "model 2"), lwd=2, col=c("red", "blue"))

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

80%

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