การประเมินประสิทธิภาพของโมเดล

ในการประเมินประสิทธิภาพของโมเดลเราโทร evaluate วิธีการดังนี้ -

loss_and_metrics = model.evaluate(X_test, Y_test, verbose=2)

ในการประเมินประสิทธิภาพของโมเดลเราโทร evaluate วิธีการดังนี้ -

loss_and_metrics = model.evaluate(X_test, Y_test, verbose=2)

เราจะพิมพ์การสูญเสียและความถูกต้องโดยใช้สองข้อความต่อไปนี้ -

print("Test Loss", loss_and_metrics[0])
print("Test Accuracy", loss_and_metrics[1])

เมื่อคุณเรียกใช้ข้อความข้างต้นคุณจะเห็นผลลัพธ์ต่อไปนี้ -

Test Loss 0.08041584826191042
Test Accuracy 0.9837

นี่แสดงให้เห็นถึงความแม่นยำในการทดสอบ 98% ซึ่งเราควรจะยอมรับได้ ความหมายสำหรับเราที่ใน 2% ของกรณีตัวเลขที่เขียนด้วยลายมือจะไม่ถูกจัดประเภทอย่างถูกต้อง นอกจากนี้เราจะพล็อตเมตริกความแม่นยำและการสูญเสียเพื่อดูว่าโมเดลทำงานอย่างไรกับข้อมูลทดสอบ

การพล็อตเมตริกความแม่นยำ

เราใช้ไฟล์ historyในระหว่างการฝึกอบรมเพื่อรับพล็อตเมตริกความแม่นยำ รหัสต่อไปนี้จะพล็อตความถูกต้องในแต่ละยุค เราเลือกความแม่นยำของข้อมูลการฝึกอบรม (“ acc”) และความถูกต้องของข้อมูลการตรวจสอบความถูกต้อง (“ val_acc”) สำหรับการลงจุด

plot.subplot(2,1,1)
plot.plot(history.history['acc'])
plot.plot(history.history['val_acc'])
plot.title('model accuracy')
plot.ylabel('accuracy')
plot.xlabel('epoch')
plot.legend(['train', 'test'], loc='lower right')

พล็อตเอาต์พุตแสดงด้านล่าง -

ดังที่คุณเห็นในแผนภาพความแม่นยำจะเพิ่มขึ้นอย่างรวดเร็วในสองยุคแรกซึ่งบ่งชี้ว่าเครือข่ายกำลังเรียนรู้อย่างรวดเร็ว หลังจากนั้นเส้นโค้งจะแบนแสดงว่าไม่จำเป็นต้องมียุคมากเกินไปในการฝึกโมเดลต่อไป โดยทั่วไปหากความแม่นยำของข้อมูลการฝึกอบรม (“ acc”) ดีขึ้นเรื่อย ๆ ในขณะที่ความถูกต้องของข้อมูลการตรวจสอบความถูกต้อง (“ val_acc”) แย่ลงแสดงว่าคุณกำลังพบปัญหาการฟิตติ้งมากเกินไป แสดงว่าโมเดลกำลังเริ่มจดจำข้อมูล

เราจะวางแผนเมตริกการสูญเสียเพื่อตรวจสอบประสิทธิภาพของโมเดลของเราด้วย

การวางแผนเมตริกการสูญเสีย

อีกครั้งเราวางแผนการสูญเสียทั้งข้อมูลการฝึกอบรม (“ การสูญเสีย”) และการทดสอบ (“ val_loss”) ทำได้โดยใช้รหัสต่อไปนี้ -

plot.subplot(2,1,2)
plot.plot(history.history['loss'])
plot.plot(history.history['val_loss'])
plot.title('model loss')
plot.ylabel('loss')
plot.xlabel('epoch')
plot.legend(['train', 'test'], loc='upper right')

ผลลัพธ์ของรหัสนี้แสดงไว้ด้านล่าง -

ดังที่คุณเห็นในแผนภาพการสูญเสียชุดฝึกจะลดลงอย่างรวดเร็วในสองยุคแรก สำหรับชุดทดสอบการสูญเสียไม่ได้ลดลงในอัตราเดียวกับชุดฝึก แต่ยังคงเกือบจะคงที่สำหรับหลายยุค ซึ่งหมายความว่าโมเดลของเรามีการสรุปข้อมูลที่มองไม่เห็นได้เป็นอย่างดี

ตอนนี้เราจะใช้แบบจำลองที่ได้รับการฝึกฝนของเราเพื่อทำนายตัวเลขในข้อมูลทดสอบของเรา