สร้างกราฟแสดง Precision Recall และ F1 score อย่างง่าย

Source: Deep Learning on Medium

สร้างกราฟแสดง Precision Recall และ F1 score อย่างง่าย

ช่วงนี้กลับมาทำWorkshop Deep learning บน Python (Jupyter notebook) ซึ่งสิ่งหนึ่งที่เราจะ Evaluate model ที่เราทำขึ้น ก็คือ ค่า Precision, Recall และ F1 score

โดยทั่วไปแล้ว เรามักจะใช้ classification_report ของ sklearn เพราะง่ายสุด แสดงผลครบหมด ตัวอย่างเช่น

แต่ถ้าเราอยากจะแสดงออกมาเป็นกราฟ เราจะนำแต่ละค่ามาplot graph ได้อย่างไรแบบง่ายๆ ถ้าเอาค่าที่ได้จาก classification_report ก็ไม่สามารถนำมาใช้ได้ทันทีเนื่องจากเป็น string

วิธีที่ง่ายที่สุด ก็คือ การ หาค่า precision, recall และ f1score ของแต่ละ class เก็บไว้ในตัวแปรแต่ละตัว จากนั้นค่อยเอามาplot ซึ่ง sklearnก็มีfunction สำหรับหาค่าทั้งสาม

จากรูปข้างบน จะเห็นว่า f1 score ผมใช้วิธีคำนวณจาก precisionและrc_score ที่ใช้functionของ sklearn โดยความจริงแล้วจะเรียกใช้ f1_score() จาก sklearn ก็ได้ แต่พบว่า จะมีerrorเกี่ยวกับ numpyarrayในบางครั้ง

อ้อ ถ้าใครจะเรียกใช้functionที่กล่าวมา อย่าลืม import เข้ามาก่อนใช้นะ

พอได้ค่าครบแล้ว ก็เอามาplot graphง่ายๆ ประมาณนี้

ก็ขอจบ mediumวันนี้ไปแต่เพียงเท่านี้ จริงๆแล้วบันทึกเอาไว้เป็นคลังความรู้ของตนเองเผื่อลืม55 แต่ถ้าใครสนใจ ก็ลองอ่านได้ครับ ขอบคุณครับ