উত্তর:
জুলাই ২০১ 2016 পর্যন্ত, প্যাকেজ PRROC আরওসি এউসি এবং পিআর এউসি উভয়কেই গণনার জন্য দুর্দান্ত কাজ করে।
probsআপনার মডেলটির সাথে ইতিমধ্যে সম্ভাবনার একটি ভেক্টর রয়েছে (ধরে নেওয়া হয়েছে ) এবং সত্য শ্রেণীর লেবেলগুলি আপনার ডেটা ফ্রেমে রয়েছে বলে মনে করে df$label(0 এবং 1) এই কোডটি কাজ করা উচিত:
install.packages("PRROC")
require(PRROC)
fg <- probs[df$label == 1]
bg <- probs[df$label == 0]
# ROC Curve
roc <- roc.curve(scores.class0 = fg, scores.class1 = bg, curve = T)
plot(roc)
# PR Curve
pr <- pr.curve(scores.class0 = fg, scores.class1 = bg, curve = T)
plot(pr)
PS: একমাত্র উদ্বেগজনক জিনিসটি আপনি scores.class0 = fgযখন fgলেবেল 1 এবং 0 টির জন্য গণনা করা হয় তা ব্যবহার করেন।
তাদের নীচের অঞ্চলগুলির সাথে এখানে আরওসি এবং পিআর বক্ররেখার উদাহরণ রয়েছে:
ডানদিকে থাকা বারগুলি হ'ল প্রান্তিক সম্ভাবনা যা বক্ররেখার একটি বিন্দু প্রাপ্ত হয়।
নোট করুন যে কোনও এলোমেলো শ্রেণিবদ্ধের জন্য, আরওসি এউসি ক্লাসের ভারসাম্যহীন নির্বিশেষে 0.5 এর কাছাকাছি থাকবে। যাইহোক, পিআর এউসি জটিল (( নির্ভুলতা প্রত্যাহার বক্ররেখা "বেসলাইন" কি দেখুন )।
একবার আপনার কাছ থেকে একটি নির্ভুলতা প্রত্যাহার বক্ররেখা পেয়েছে qpPrecisionRecall, যেমন:
pr <- qpPrecisionRecall(measurements, goldstandard)
আপনি এটি করে এটির এউসি গণনা করতে পারেন:
f <- approxfun(pr[, 1:2])
auc <- integrate(f, 0, 1)$value
সহায়তা পৃষ্ঠাটি qpPrecisionRecallআপনাকে তার আর্গুমেন্টে ডেটা কাঠামোটি কী প্রত্যাশা করে তার বিশদ দেয়।
AUPRC()PerfMeasপ্যাকেজে একটি ফাংশন যা ডেটা খুব বড় হয়ে গেলে প্যাকেজে pr.curve()ফাংশনের চেয়ে অনেক ভাল PRROC।
pr.curve()এটি একটি দুঃস্বপ্ন এবং যখন লক্ষ লক্ষ এন্ট্রি সহ আপনার ভেক্টর থাকে তা শেষ করতে চিরকালের জন্য লাগে। PerfMeasতুলনায় কয়েক সেকেন্ড সময় নেয়। PRROCআর PerfMeasতে লেখা হয় এবং সি তে লেখা হয়।