Keras คำนวณความแม่นยำอย่างไร


26

Keras คำนวณความแม่นยำจากความน่าจะเป็นแบบคลาสสิกอย่างไร ตัวอย่างเช่นเรามี 100 ตัวอย่างในชุดทดสอบซึ่งสามารถเป็นหนึ่งในสองคลาส เรายังมีรายการของความน่าจะเป็นแบบคลาสสิก Keras ใช้เกณฑ์อะไรในการกำหนดตัวอย่างให้กับหนึ่งในสองคลาสนี้


คุณใช้ model.evaluate เป็น keras หรือไม่
Hima Varsha

ใช่ฉันใช้ model.evaluate เฉพาะเจาะจงมากขึ้น model.evaluate_generator
Raghuram


คำตอบ:


24

สำหรับการจำแนกเลขฐานสองโค้ดสำหรับการวัดความแม่นยำคือ:

K.mean(K.equal(y_true, K.round(y_pred)))

ซึ่งแสดงให้เห็นว่า 0.5 เป็นเกณฑ์ในการแยกความแตกต่างระหว่างคลาส แน่นอนว่าy_trueควรเป็น 1-hots ในกรณีนี้

มันแตกต่างกันเล็กน้อยสำหรับการจำแนกหมวดหมู่:

K.mean(K.equal(K.argmax(y_true, axis=-1), K.argmax(y_pred, axis=-1)))

ซึ่งหมายความว่า "ความถี่ในการทำนายมีค่าสูงสุดในจุดเดียวกับค่าจริง"

นอกจากนี้ยังมีตัวเลือกสำหรับความแม่นยำหมวดหมู่ -k ซึ่งคล้ายกับด้านบน แต่คำนวณว่าความถี่ของกลุ่มเป้าหมายอยู่ในการคาดการณ์บน -k


ขอบคุณสำหรับคำตอบ นั่นหมายความว่าแม้สำหรับการจำแนกเลขฐานสองฉลากจะต้องมีการเข้ารหัสแบบร้อนหรือไม่
Raghuram

@ Raghuram ไม่, สำหรับการจำแนกเลขฐานสองคุณแค่ต้องการ 0 หรือ 1 เป็นคลาส, ไม่จำเป็นต้องเข้ารหัสหนึ่งอันร้อนแรง เนื่องจาก K.mean (K.equal (y_true, K.round (y_pred))) จะจับคู่ 2 ค่าลอยสำหรับแต่ละกรณีดังนั้นจึงต้องเป็น 0 หรือ 1 และไม่ใช่ [0,1], [1,0]
Divyanshu Kalra

categorical_accuracyเพื่อความถูกต้องเด็ดขาดการใช้งาน
Shital Shah

1
สำหรับปัญหาหลายคลาส (ที่มีมากกว่าสองคลาส) มีความแตกต่างระหว่างการใช้ "ความถูกต้อง" กับ "categorical_accuracy" หรือไม่
Quetzalcoatl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.