হ্যাঁ, এমন পরিস্থিতি রয়েছে যেখানে সাধারণ রিসিভার অপারেটিং কার্ভ পাওয়া যায় না এবং কেবল একটি পয়েন্ট বিদ্যমান।
এসভিএমগুলি সেট আপ করা যায় যাতে তারা শ্রেণীর সদস্যতার সম্ভাবনাগুলি আউটপুট করে। এগুলি হ'ল স্বাভাবিক মান যার জন্য একটি প্রাপক অপারেটিং কার্ভ উত্পাদন করতে একটি প্রান্তিক বৈচিত্র্যযুক্ত হবে ।
যে আপনার জন্য খুঁজছেন?
আরওসি-র পদক্ষেপগুলি সাধারণত কোভেরিয়টে বিভিন্ন প্রকারের পরিবর্তনের সাথে সামান্য সংখ্যক পরীক্ষার ক্ষেত্রে ঘটে থাকে (বিশেষত, আপনি যদি আপনার পৃথক চৌম্বকটি বেছে নেন তবে একই পয়েন্টগুলি সমাপ্ত করবেন যাতে প্রতিটি নতুন পয়েন্টের জন্য কেবলমাত্র একটি নমুনা পরিবর্তিত হয়) এর অ্যাসাইনমেন্ট)।
নিয়মিতভাবে মডেলটির অন্যান্য (হাইপার) পরামিতিগুলির পৃথকীকরণের ফলে নির্দিষ্টতা / সংবেদনশীল জুটির সেট তৈরি হয় যা এফপিআর; টিপিআর সমন্বয় ব্যবস্থাতে অন্যান্য বক্ররেখা দেয়।
অবশ্যই একটি বক্ররেখার ব্যাখ্যার উপর নির্ভর করে কোন পরিবর্তনটি বক্ররেখা উত্পন্ন করেছিল।
আইরিস ডেটা সেটটির "ভার্সিকালার" শ্রেণীর জন্য এখানে একটি সাধারণ আরওসি (অর্থাত্ আউটপুট হিসাবে সম্ভাব্যতার জন্য অনুরোধ করা) রয়েছে:
- এফপিআর; টিপিআর (γ = 1, সি = 1, সম্ভাবনার প্রান্তিকতা):
একই ধরণের সমন্বয় ব্যবস্থা, তবে টিউনিং প্যারামিটারগুলির ফাংশন হিসাবে টিপিআর এবং এফপিআর γ এবং সি:
এফপিআর; টিপিআর (γ, সি = 1, সম্ভাবনার প্রান্তিকতা = 0.5):
এফপিআর; টিপিআর (γ = 1, সি, সম্ভাবনার প্রান্তিকতা = 0.5):
এই প্লটগুলির একটি অর্থ রয়েছে, তবে অর্থটি সাধারণ আরওসি থেকে স্থিরভাবে পৃথক!
আমার ব্যবহৃত আর কোডটি এখানে:
svmperf <- function (cost = 1, gamma = 1) {
model <- svm (Species ~ ., data = iris, probability=TRUE,
cost = cost, gamma = gamma)
pred <- predict (model, iris, probability=TRUE, decision.values=TRUE)
prob.versicolor <- attr (pred, "probabilities")[, "versicolor"]
roc.pred <- prediction (prob.versicolor, iris$Species == "versicolor")
perf <- performance (roc.pred, "tpr", "fpr")
data.frame (fpr = perf@x.values [[1]], tpr = perf@y.values [[1]],
threshold = perf@alpha.values [[1]],
cost = cost, gamma = gamma)
}
df <- data.frame ()
for (cost in -10:10)
df <- rbind (df, svmperf (cost = 2^cost))
head (df)
plot (df$fpr, df$tpr)
cost.df <- split (df, df$cost)
cost.df <- sapply (cost.df, function (x) {
i <- approx (x$threshold, seq (nrow (x)), 0.5, method="constant")$y
x [i,]
})
cost.df <- as.data.frame (t (cost.df))
plot (cost.df$fpr, cost.df$tpr, type = "l", xlim = 0:1, ylim = 0:1)
points (cost.df$fpr, cost.df$tpr, pch = 20,
col = rev(rainbow(nrow (cost.df),start=0, end=4/6)))
df <- data.frame ()
for (gamma in -10:10)
df <- rbind (df, svmperf (gamma = 2^gamma))
head (df)
plot (df$fpr, df$tpr)
gamma.df <- split (df, df$gamma)
gamma.df <- sapply (gamma.df, function (x) {
i <- approx (x$threshold, seq (nrow (x)), 0.5, method="constant")$y
x [i,]
})
gamma.df <- as.data.frame (t (gamma.df))
plot (gamma.df$fpr, gamma.df$tpr, type = "l", xlim = 0:1, ylim = 0:1, lty = 2)
points (gamma.df$fpr, gamma.df$tpr, pch = 20,
col = rev(rainbow(nrow (gamma.df),start=0, end=4/6)))
roc.df <- subset (df, cost == 1 & gamma == 1)
plot (roc.df$fpr, roc.df$tpr, type = "l", xlim = 0:1, ylim = 0:1)
points (roc.df$fpr, roc.df$tpr, pch = 20,
col = rev(rainbow(nrow (roc.df),start=0, end=4/6)))