การประเมินประสิทธิภาพของโมเดล
ในการประเมินประสิทธิภาพของโมเดลเราโทร 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')
ผลลัพธ์ของรหัสนี้แสดงไว้ด้านล่าง -
ดังที่คุณเห็นในแผนภาพการสูญเสียชุดฝึกจะลดลงอย่างรวดเร็วในสองยุคแรก สำหรับชุดทดสอบการสูญเสียไม่ได้ลดลงในอัตราเดียวกับชุดฝึก แต่ยังคงเกือบจะคงที่สำหรับหลายยุค ซึ่งหมายความว่าโมเดลของเรามีการสรุปข้อมูลที่มองไม่เห็นได้เป็นอย่างดี
ตอนนี้เราจะใช้แบบจำลองที่ได้รับการฝึกฝนของเราเพื่อทำนายตัวเลขในข้อมูลทดสอบของเรา