- ใช่มีสถานการณ์ที่ไม่สามารถรับเส้นโค้งการทำงานของเครื่องรับตามปกติและมีเพียงจุดเดียวเท่านั้น 
- สามารถตั้งค่า SVM เพื่อให้สามารถส่งออกความน่าจะเป็นสมาชิกคลาสได้ เหล่านี้จะเป็นค่าปกติซึ่งเกณฑ์ที่จะมีการเปลี่ยนแปลงในการผลิตการดำเนินงานรับโค้ง 
 นั่นคือสิ่งที่คุณกำลังมองหา?
 
- ขั้นตอนใน ROC มักจะเกิดขึ้นกับกรณีทดสอบจำนวนน้อยมากกว่าที่จะทำอะไรกับความแปรผันที่ไม่ต่อเนื่องใน covariate (โดยเฉพาะคุณจบลงด้วยคะแนนเดียวกันถ้าคุณเลือกเกณฑ์ที่ไม่ต่อเนื่องดังนั้นสำหรับแต่ละจุดใหม่เพียงการเปลี่ยนแปลงตัวอย่างเดียว การมอบหมายงาน)  
- การเปลี่ยนแปลงพารามิเตอร์อื่น ๆ (ไฮเปอร์) อย่างต่อเนื่องของรูปแบบของหลักสูตรสร้างชุดของคู่ความจำเพาะ / ความไวที่ให้เส้นโค้งอื่น ๆ ใน FPR ระบบพิกัด TPR 
 แน่นอนว่าการตีความเส้นโค้งขึ้นอยู่กับความผันแปรใดที่ทำให้เกิดเส้นโค้ง
 
นี่คือ ROC ปกติ (เช่นการร้องขอความน่าจะเป็นผลลัพธ์) สำหรับคลาส "versicolor" ของชุดข้อมูล iris:
- FPR; TPR (γ = 1, C = 1, เกณฑ์ความน่าจะเป็น):
  
ระบบพิกัดประเภทเดียวกัน แต่ TPR และ FPR เป็นฟังก์ชั่นของการปรับค่าพารามิเตอร์γและ C:
- FPR; TPR (γ, C = 1, เกณฑ์ความน่าจะเป็น = 0.5):
  
 
- FPR; TPR (γ = 1, C, threshold ความน่าจะเป็น = 0.5):
  
 
แปลงเหล่านี้มีความหมาย แต่ความหมายแตกต่างจาก ROC ปกติ!
นี่คือรหัส R ที่ฉันใช้:
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)))