Home

About Us

  • Facebook
  • X
  • Instagram
  • Pinterest
  • WhatsApp
  • RSS Feed
  • TikTok

บริการรับทำระบบ AI & Mobile Application ทั้ง ANDROID & IOS

Welcome to my Blog.

Search

ทำความเข้าใจ accuracy,precision,recall,f1-score

ninenox Avatar
ninenox
กันยายน 24, 2020
ทำความเข้าใจ accuracy,precision,recall,f1-score

ในการวัดประสิทธิภาพของ model ที่เราได้สร้างมาด้วยความยากลำบากนั้น ซึ่งเรียกขั้นตอนนี้ว่า evaluate model โดยเราจะแบ่งเป็น 2 กรณี คือ แบบ regression และแบบ classification

—1. การวัดประสิทธิภาพโมเดลแบบ regression

ในกรณีที่เป็นแบบ regression หรือ target ข้อมูลเป็นแบบ scale หรือแบบตัวเลขซึ่งมีทั้งแบบ discrete พวกจำนวนเต็มและ continuous แบบต่อเนื่อง เราจะพิจารณาจากค่า error โดยใช้ข้อมูลด้านล่าง ดังนี้

– Mean Squared Error(MSE)

– Root-Mean-Squared-Error(RMSE)

– Mean-Absolute-Error(MAE)

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

—2. การวัดประสิทธิภาพโมเดลแบบ classification

classification หรือ target เป็นแบบ categorical หรือถ้ามีสองค่าก็จะเรียกว่าไบนารี เช่น การทายว่าเป็นหมาหรือแมว , เป็นมะเร็งหรือไม่เป็น, ท้องหรือไม่ท้อง เป็นต้น กรณีนี้เราจะใช้ดังนี้

◦ Confusion Matrix

◦ Precision and Recall

◦ Accuracy

◦ F-Measure

◦ ROC Graph and Area Under Curve (AUC)

ก่อนอื่นการที่เราจะหาค่า accuracy หรือการวัดผลอื่นๆตามหัวข้อข้างต้น เราต้องมาทำความรู้จักกับ False Positive,True Positive, False Negative,True Negative ซึ่งค่าเหล่านี้เราจะเอาไปแทนในสูตรเพื่อหาค่าวัดผลต่างๆได้ โดยจะได้มาจากตาราง confusion matrix ครับ เรามาดูตัวอย่างกันครับ

Confusion Matrix

confusion matrix ที่เราสามารถพบเจอจะมีรูปแบบ 2 แบบ แบบที่ค่า predict อยู่ซ้ายมือ,actual อยู่ด้านบน กับอีกแบบคือ actual อยู่ซ้ายมือและ predict อยู่ด้านบน จริงๆมันคือตารางเดียวกันแค่สลับตำแหน่ง อยากแยกมาให้ดูไว้ เพราะหลายๆตัวอย่างใช้คนล่ะแบบครับ ตามภาพด้านล่างนี้ครับ

  1. แบบ predict-actual
ที่มา : https://www.semanticscholar.org/paper/Learning-ensembles-of-first-order-clauses-that-Shavlik-Goadrich/bf713c58e965e3ddbcdc65f2095b6a91823339d0

2. แบบ actual-predict

ที่มา : https://medium.com/@mirthful_sunset_cattle_231/confusion-matrix-48cc396b1b58

ตัวอย่าง Confusion Matrix

ที่มา : https://towardsdatascience.com/understanding-confusion-matrix-a9ad42dcfd62

จากภาพข้างบน เป็น confusion matrix แบบ predict-actual ซึ่งในกรณีนี้ผู้ทำภาพซึ่งน่าจะเป็นชาวต่างชาติต้องการสื่อให้เข้าใจง่ายขึ้นครับ ในภาพนี้เราจะแทนคุณหมอให้เป็น model ที่ทำนายว่าคนไข้กำลังตั้งท้องอยู่หรือไม่

1) True Positive คือ ข้อมูลที่ทำนายตรงกับข้อมูลจริงในคลาสที่กำลังพิจารณา (โมเดลบอกท้อง ผลจริงคือท้อง)


2) False Positive คือ ข้อมูลที่ทำนายผิดเป็นคลาสที่กำลังพิจารณา (โมเดลบอกท้อง ผลจริงคือไม่ท้อง)


3) False Negative คือ ข้อมูลที่ทำนายผิดเป็นคลาสที่ไม่ได้พิจารณา (โมเดลบอกไม่ท้อง ผลจริงคือท้อง)


4)True Negative คือ ข้อมูลที่ทำนายตรงกับข้อมูลจริงในคลาสที่ไม่ได้พิจารณา (โมเดลบอกไม่ท้อง ผลจริงคือไม่ท้อง)

จากตัวอย่างนี้ แสดงให้เห็นว่า จะมีกรณีที่เราจำเป็นต้องพิจารณาจากสถานการณ์จริงว่าเหตุการณ์ไหนที่อยู่ในเกณฑ์ที่รับได้หรือเหตุการณ์ไหนที่ต้องระมัดระวังไม่ให้เกิดขึ้น กรณีข้างบนนี้ type 2 error น่าจะไม่ควรให้เกิด เพราะจะทำให้เกิดอันตรายได้ ดังนั้น ควรลดค่า False Negative ให้ได้มากที่สุด ต่อไปเรามาดูว่าจะนำค่าเหล่านี้ไปใช้กับอะไรบ้าง


การคำนวณหาค่าการวัดผลต่างๆ

1) Accuracy

ค่าความถูกต้อง คำนวนได้จากสูตร
Accuracy = (TP+TN)/(TP+TN+FP+FN)
หรือ ค่าที่โมเดลทายถูกทั้งหมด/ค่าทั้งหมด

2) Precision หรือ Positive Predictive Value

ค่าความแม่นยำ
Precision = TP/(TP+FP)
หรือ ค่าที่โมเดลทายเป็นคลาสที่กำลังพิจารณาถูก/ค่าที่โมเดลทำนายว่าเป็นคลาสที่กำลังพิจารณาทั้งถูกและผิด

3) Sensitivity หรือ Recall

ความไว หาค่าได้จากสูตร
Sensitivity/Recall = TP/(TP+FN)
หรือ ค่าที่โมเดลทายเป็นคลาสที่กำลังพิจารณาถูก/ค่าเหตุการณ์จริงเป็นคลาสที่กำลังพิจารณาทั้งถูกและผิด

4) Specificity

ความจำเพาะ หาค่าได้จากสูตร
Specificity = TN/(TN+FP)

5) F1-Score

เป็นค่าที่ได้จากการเอาค่า precision และ recall มาคำนวณรวมกัน (F1 สร้างขึ้นมาเพื่อเป็น single metric ที่วัดความสามารถของโมเดล ไม่ต้องเลือกระหว่าง precision, recall เพราะเฉลี่ยให้แล้ว)
F1 = 2*[(precision*recall)/(precision+recall)]

ROC Curve (receiver operating characteristic)

ในการศึกษาเรื่อง ROC curve มี 2 ประเด็นสำคัญ ที่ต้องให้ความสำคัญ ได้แก่

ที่มา : https://www.datasciencecentral.com/profiles/blogs/roc-curve-explained-in-one-picture

1. Optimal cut-off point ของ ROC

การเลือก Optimal cut-off point หรือจุดที่อยู่บนกราฟ ที่จะได้ค่า AUC มากที่สุด (ให้ผลดีที่สุด) คือ จุดที่อยุ่ใกล้มุมซ้ายบนมากที่สุด ซึ่งจะเป็นจุดที่ Sensitivity สูงและ Specificity สูงด้วยเช่นกัน

2. พื้นที่ใต้กราฟ (AUC; Area under the curve)

ค่า AUC ยิ่งเข้าใกล้ 1 มากยิ่งดี เพราะโมเดลจะมีประสิทธิภาพ

Precision-Recall Curve

ที่มา : https://www.r-bloggers.com/2020/01/area-under-the-precision-recall-curve/

สรุปในส่วนการวัดผล classification คิดว่าคงต้องพิจารณาทั้งหมด ตั้งแต่ confusion matrix จนถึงค่าข้างบนดังกล่าวข้างต้นครับ

25

Featured Articles

  • ขั้นตอนในการสร้าง AI

    ขั้นตอนในการสร้าง AI

    มกราคม 20, 2024
  • Linux File System

    Linux File System

    กันยายน 4, 2023
  • ค่า FPS คืออะไร

    ค่า FPS คืออะไร

    กรกฎาคม 31, 2023
  • การทำ Semantic Segmentation

    การทำ Semantic Segmentation

    กันยายน 24, 2022
  • วิธีติดตั้ง teamviewer บน jetson nano

    วิธีติดตั้ง teamviewer บน jetson nano

    กรกฎาคม 7, 2022

Search

Author Details

Nisit Sirimarnkit

Developer, Thailand

  • X
  • Instagram
  • TikTok
  • Facebook

Follow Us on

  • Facebook
  • X
  • Instagram
  • VK
  • Pinterest
  • Last.fm
  • TikTok
  • Telegram
  • WhatsApp
  • RSS Feed

Categories

  • Android (12)
  • Blog (91)
  • Feature (1)
  • IOS (13)
  • Research (2)
  • Website (8)

Archives

  • มกราคม 2024 (1)
  • กันยายน 2023 (1)
  • กรกฎาคม 2023 (1)
  • กันยายน 2022 (1)
  • กรกฎาคม 2022 (1)
  • กุมภาพันธ์ 2022 (1)
  • มกราคม 2022 (2)
  • สิงหาคม 2021 (1)
  • มิถุนายน 2021 (1)
  • พฤษภาคม 2021 (4)
  • เมษายน 2021 (2)
  • ธันวาคม 2020 (1)
  • พฤศจิกายน 2020 (2)
  • ตุลาคม 2020 (1)
  • กันยายน 2020 (2)
  • ตุลาคม 2019 (1)
  • กันยายน 2019 (1)
  • สิงหาคม 2019 (2)
  • มิถุนายน 2019 (1)
  • มีนาคม 2019 (1)
  • มกราคม 2019 (5)
  • ธันวาคม 2018 (3)
  • กันยายน 2018 (2)
  • สิงหาคม 2018 (1)
  • กรกฎาคม 2018 (4)
  • มิถุนายน 2018 (2)
  • พฤษภาคม 2018 (2)
  • เมษายน 2018 (2)
  • มีนาคม 2018 (1)
  • กุมภาพันธ์ 2018 (2)
  • มกราคม 2018 (1)
  • ธันวาคม 2017 (2)
  • พฤศจิกายน 2017 (3)
  • ตุลาคม 2017 (3)
  • กันยายน 2017 (1)
  • พฤษภาคม 2017 (1)
  • เมษายน 2017 (4)
  • มีนาคม 2017 (2)
  • กุมภาพันธ์ 2017 (1)
  • มกราคม 2017 (2)
  • ธันวาคม 2016 (2)
  • พฤศจิกายน 2016 (1)
  • ตุลาคม 2016 (7)
  • กันยายน 2016 (7)
  • สิงหาคม 2016 (8)
  • กรกฎาคม 2016 (11)
  • มิถุนายน 2016 (13)

Tags

$0 swift admob android android gps app installation failed app ios app reject blackribbon blur image blur view cabasicanimation closure swift dart dartlang drupal facebook logout button facebook sdk ios game ios gps gps device init init swift ios ios line ios line login login with line memorycards object c pandas pull to refresh swift swift 3 swift 3 output swift animation swift blur website xcode xcode 8 การถ่ายภาพ ถ่ายรูป เปิดไพ่จับคู่ เว็บไซต์ แอปติดโบว์ดำ แอปแต่งรูปไว้อาลัย แอปไว้อาลัย

About Us

Ninenox.com

บริการรับทำระบบ AI และพัฒนาแอปพลิเคชันเพื่อช่วยเพิ่มประสิทธิภาพหรือแก้ปัญหาในการทำงาน

Latest Articles

  • ขั้นตอนในการสร้าง AI

    ขั้นตอนในการสร้าง AI

    มกราคม 20, 2024
  • Linux File System

    Linux File System

    กันยายน 4, 2023
  • ค่า FPS คืออะไร

    ค่า FPS คืออะไร

    กรกฎาคม 31, 2023

Categories

  • Android (12)
  • Blog (91)
  • Feature (1)
  • IOS (13)
  • Research (2)
  • Website (8)
  • Instagram
  • Facebook
  • LinkedIn
  • X
  • VK
  • TikTok

Proudly Powered by WordPress | JetNews Magazine by CozyThemes.

Scroll to Top