Mengevaluasi Kinerja Model

Untuk mengevaluasi kinerja model, kami menyebutnya evaluate metode sebagai berikut -

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

Untuk mengevaluasi kinerja model, kami menyebutnya evaluate metode sebagai berikut -

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

Kami akan mencetak kerugian dan akurasi menggunakan dua pernyataan berikut -

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

Ketika Anda menjalankan pernyataan di atas, Anda akan melihat output berikut -

Test Loss 0.08041584826191042
Test Accuracy 0.9837

Ini menunjukkan akurasi tes 98%, yang seharusnya dapat kami terima. Apa artinya bagi kami bahwa dalam 2% kasus, angka tulisan tangan tidak akan diklasifikasikan dengan benar. Kami juga akan memplot metrik akurasi dan kerugian untuk melihat bagaimana performa model pada data pengujian.

Merencanakan Metrik Akurasi

Kami menggunakan rekaman historyselama pelatihan kami untuk mendapatkan plot metrik akurasi. Kode berikut akan memetakan akurasi pada setiap epoch. Kami mengambil akurasi data pelatihan ("acc") dan akurasi data validasi ("val_acc") untuk pembuatan plot.

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')

Plot output ditunjukkan di bawah ini -

Seperti yang Anda lihat di diagram, akurasi meningkat dengan cepat dalam dua periode pertama, menunjukkan bahwa jaringan belajar dengan cepat. Setelah itu, kurva mendatar yang menunjukkan bahwa tidak terlalu banyak masa yang diperlukan untuk melatih model lebih lanjut. Umumnya, jika akurasi data pelatihan ("acc") terus meningkat sementara akurasi data validasi ("val_acc") semakin buruk, Anda akan mengalami overfitting. Ini menunjukkan bahwa model mulai menghafal data.

Kami juga akan memplot metrik kerugian untuk memeriksa kinerja model kami.

Merencanakan Metrik Kerugian

Sekali lagi, kami memplot kerugian pada data pelatihan ("kerugian") dan pengujian ("val_loss"). Ini dilakukan dengan menggunakan kode berikut -

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')

Output dari kode ini ditunjukkan di bawah ini -

Seperti yang Anda lihat di diagram, kerugian pada set pelatihan berkurang dengan cepat untuk dua periode pertama. Untuk set pengujian, kerugian tidak berkurang pada tingkat yang sama seperti set pelatihan, tetapi tetap hampir datar untuk beberapa epoch. Ini berarti model kami menggeneralisasi dengan baik ke data yang tidak terlihat.

Sekarang, kami akan menggunakan model terlatih kami untuk memprediksi digit dalam data pengujian kami.