วิธีคำนวณคะแนน f1 ใน r (พร้อมตัวอย่าง)


เมื่อใช้ แบบจำลองการจัดหมวดหมู่ ในการเรียนรู้ของเครื่อง ตัวชี้วัดทั่วไปที่เราใช้ในการประเมินคุณภาพของแบบจำลองคือ คะแนน F1

เมตริกนี้คำนวณดังนี้:

คะแนน F1 = 2 * (ความแม่นยำ * การเรียกคืน) / (ความแม่นยำ + การเรียกคืน)

ทอง:

  • ความแม่นยำ : แก้ไขการคาดการณ์เชิงบวกโดยสัมพันธ์กับการคาดการณ์เชิงบวกทั้งหมด
  • คำเตือน : การแก้ไขการคาดการณ์เชิงบวกเทียบกับผลบวกจริงทั้งหมด

ตัวอย่างเช่น สมมติว่าเราใช้แบบจำลองการถดถอยลอจิสติกส์เพื่อคาดการณ์ว่าผู้เล่นบาสเกตบอลระดับวิทยาลัยกว่า 400 คนจะถูกคัดเลือกเข้าสู่ NBA หรือไม่

เมทริกซ์ความสับสนต่อไปนี้สรุปการคาดการณ์ที่ทำโดยโมเดล:

ต่อไปนี้เป็นวิธีคำนวณคะแนน F1 ของโมเดล:

ความแม่นยำ = ผลบวกจริง / (ผลบวกจริง + ผลบวกลวง) = 120/ (120+70) = 0.63157

การเรียกคืน = True Positive / (True Positive + False Negative) = 120 / (120+40) = 0.75

คะแนน F1 = 2 * (.63157 * .75) / (.63157 + .75) = . 6857

ตัวอย่างต่อไปนี้แสดงวิธีคำนวณคะแนน F1 สำหรับแบบจำลองนี้ใน R

ตัวอย่าง: การคำนวณคะแนน F1 ใน R

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน ความสับสนMatrix() จากแพ็คเกจ คาเร็ต ใน R เพื่อคำนวณคะแนน F1 (และหน่วยวัดอื่นๆ) สำหรับแบบจำลองการถดถอยโลจิสติกที่กำหนด:

 library (caret)

#define vectors of actual values and predicted values
actual <- factor(rep(c(1, 0), times=c(160, 240)))
pred <- factor(rep(c(1, 0, 1, 0), times=c(120, 40, 70, 170)))

#create confusion matrix and calculate metrics related to confusion matrix
confusionMatrix(pred, actual, mode = " everything ", positive=" 1 ")

          Reference
Prediction 0 1
         0 170 40
         1 70 120
                                          
               Accuracy: 0.725           
                 95% CI: (0.6784, 0.7682)
    No Information Rate: 0.6             
    P-Value [Acc > NIR]: 1.176e-07       
                                          
                  Kappa: 0.4444          
                                          
 Mcnemar's Test P-Value: 0.005692        
                                          
            Sensitivity: 0.7500          
            Specificity: 0.7083          
         Pos Pred Value: 0.6316          
         Neg Pred Value: 0.8095          
              Accuracy: 0.6316          
                 Recall: 0.7500          
                     F1: 0.6857          
             Prevalence: 0.4000          
         Detection Rate: 0.3000          
   Detection Prevalence: 0.4750          
      Balanced Accuracy: 0.7292          
                                          
       'Positive' Class: 1

เราจะเห็นว่าคะแนน F1 คือ 0.6857 . ซึ่งตรงกับค่าที่เราคำนวณด้วยตนเองก่อนหน้านี้

หมายเหตุ : เราจำเป็นต้องระบุ mode=”everthing” เพื่อให้คะแนน F1 ปรากฏในเอาต์พุต

หากคุณใช้คะแนน F1 เพื่อเปรียบเทียบหลายรุ่น โมเดลที่มีคะแนน F1 สูงสุดจะแสดงแบบจำลองที่สามารถจำแนกการสังเกตออกเป็นคลาสได้ดีที่สุด

ตัวอย่างเช่น หากคุณปรับโมเดลการถดถอยโลจิสติกอื่นเข้ากับข้อมูลได้ และโมเดลนั้นมีคะแนน F1 เท่ากับ 0.85 โมเดลนั้นจะถือว่าดีกว่าเนื่องจากมีคะแนน F1 ที่สูงกว่า

แหล่งข้อมูลเพิ่มเติม

วิธีดำเนินการถดถอยโลจิสติกใน R
คะแนน F1 เทียบกับความแม่นยำ: คุณควรใช้อันไหน

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *