วิธีการตีความเส้นโค้ง ROC AUC ซึ่งไม่ได้เริ่มต้นเป็นศูนย์

ฉันมีเส้นโค้ง ROC ซึ่งน่าแปลกที่ไม่ได้เริ่มต้นที่ 0 และสงสัยว่าสิ่งนี้มีความหมายว่าอย่างไร เส้นโค้ง ROC นี้สร้างขึ้นจากตัวแยกประเภท Naive Bayes

สามารถดาวน์โหลดชุดข้อมูลได้จากที่นี่: https://drive.google.com/file/d/14HG2sQDeAo8iPnYcZjEXvAi7iuimKwyD/view?usp=sharing

ร

library(tidyverse)
library(caret)
mammographic_masses<- read_csv("MyData.csv")
set.seed(123)
training.samples <- mammographic_masses$severity %>%
    createDataPartition(p = 0.8, list = FALSE)
trainData  <- mammographic_masses[training.samples, ]
testData <- mammographic_masses[-training.samples, ]
library(e1071)
nb_model = naiveBayes(as.factor(severity) ~., data=trainData)
nb_predicted <- predict(nb_model, testData)
nb_predicted <- as.numeric(levels(nb_predicted))[nb_predicted]
plotROC(testData$severity, nb_predicted)

person Darren Soo    schedule 07.06.2020    source แหล่งที่มา
comment
โปรดระบุ trainData ของคุณหรือตัวอย่างเพื่อให้เราสามารถจำลองพล็อตของคุณได้   -  person Dave    schedule 07.06.2020
comment
ฉันได้จัดเตรียมชุดข้อมูลของฉันแล้ว   -  person Darren Soo    schedule 07.06.2020
comment
รหัสของคุณไม่ทำงาน ฉันแก้ไขมันเพื่อเพิ่มการเรียก library ที่ชัดเจน และฉันไม่รู้ว่าทำไมคุณถึงมี col_names = FALSE เมื่อคุณใช้ชื่อคอลัมน์อย่างชัดเจน แต่ฉันก็ยังได้รับ Error: object 'plotROC' not found มีแพ็คเกจมากมายที่ให้บริการฟังก์ชันนี้ โปรดอ่าน stackoverflow.com/help/minimal-reproducible-example .   -  person Calimo    schedule 08.06.2020


คำตอบ (1)


ฉันไม่ทราบว่าคุณใช้แพ็คเกจใดที่มีฟังก์ชัน plotROC

แต่การตีความนั้นชัดเจน: มันเป็นจุดบกพร่อง

เส้นโค้ง ROC เสมอ เริ่มจากมุมซ้ายล่างและสิ้นสุดที่มุมขวาบน เสมอ. ไม่มีข้อยกเว้นสำหรับกฎนี้

นี่คือเส้นโค้ง ROC ที่ถูกต้องซึ่งคำนวณโดยแพ็คเกจ pROC จากข้อมูลของคุณ:

library(pROC)
plot(roc(testData$severity, nb_predicted), print.auc = TRUE)

เส้นโค้ง ROC ที่ถูกต้อง

person Calimo    schedule 08.06.2020