Machine Learning Ep.4: Sensitivity & Specificity

stackpython
2 min readJan 31, 2020

--

บทความนี้เราจะมาพูดถึงเรื่องค่า Sensitivity กับ Specificity ว่ามันคืออะไรและมีประโยชน์อย่างไรกันนะครับซึ่งเนื้อหาจะต่อมาจาก Ep.3 ที่เราพูดถึงเรื่อง Confusion Matrix ไป ผมแนะนำให้อ่านบทความนั้นมาก่อนนะครับเพื่อความเข้าใจที่มากขึ้น

ตัวอย่่าง Confusion Matrix จาก Random Forests และ Support Vector Machine

ครั้งที่แล้วเราใช้ค่า Accuracy Rate ในการตัดสินใจว่าจะเลือกใช้ Machine Learning Method ไหนในการทำโมเดลของเราซึ่งเราสรุปได้ว่าควรใช้ Random Forests เพราะมีค่า Accuracy Rate ที่ 77.5 % ซึ่งสูงกว่า Support Vector Machine ที่มีเพียงแค่ 68.5%

คำถาม: ถ้าเราสนใจวิธีที่ให้ True Positives มากที่สุดหละจะมีการเปรียบเทียบยังไง?

ตอบ: เปรียบเทียบโดยใช้ค่า Sensitivity!!

คำถาม : แล้วถ้าสนใจ True Negatives มากกว่าหละ?

ตอบ: ดูที่ค่า Specificity ได้เลย!!

Sensitivity = True Positives / (True Positives + False Negatives)

Specificity = True Negatives / (True Negatives + False Positives)

ทบทวน

True Positives = จำนวนที่ระบบทำนายว่า + และสิ่งนั้น +

False Positives = จำนวนที่ระบบทำนายว่า + แต่สิ่งนั้น -

True Negatives = จำนวนที่ระบบทำนายว่า - และสิ่งนั้น -

False Negatives = จำนวนที่ระบบทำนายว่า - แต่สิ่งนั้น +

หลังจากที่ทบทวนจนพื้นฐานแน่นแล้วงั้นเรามาดูตัวอย่างด้านล่างกันเลยดีกว่าครับ

Confusion Matrix ของ Support Vector Machine

จากรูปด้านบนซึ่งเป็น Confusion Matrix ของ Support Vector Machine ซึ่งมีค่า Sensitivity = 73 / (73 + 27) = 73% และ Specificity = 64 / (64+36) = 64% วิธีการดูง่ายๆใน 2x2 ก็คือดูตาม Column เลยครับและในทำนองเดียวกันค่า Sensitivity ของ Random Forests จะอยู่ที่ 80% และ Specificity จะอยู่ที่ 75% ซึ่งถ้าหากเราสนใจ True Positives มากกว่าเราจะเลือกใช้ Random Forests เพราะมีค่า Sensitivity ที่สูงกว่า แต่ถ้าสนใจ True Negatives มากกว่าเราจะเลือกใช้ Support Vector Machine เพราะมีค่า Specificity ที่สูงกว่า

สรุป

  • Sensitivity คือค่าที่ใช้เปรียบเทียบ Machine Learning Method เมื่อเราสนใจ True Positives มากที่สุด
  • Specificity คือค่าที่ใช้เปรียบเทียบ Machine Learning Method เมื่อเราสนใจ True Negatives มากที่สุด

หากเพื่อนๆชอบบทความนี้ก็สามารถให้กำลังใจผู้เขียนได้ด้วยกันกด Clap หรือถ้ามีส่วนไหนอยากแนะนำเพิ่มเติมก็สามารถ Response กันเข้ามาเพื่อนำไปพัฒนาบทความถัดๆไป ยินดีรับฟังทุกความเห็นครับ ^^ แล้วเจอกันบทความหน้าครับ!!!!

--

--

stackpython
stackpython

Responses (1)