Évaluation des performances du modèle

Pour évaluer les performances du modèle, nous appelons evaluate méthode comme suit -

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

Pour évaluer les performances du modèle, nous appelons evaluate méthode comme suit -

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

Nous imprimerons la perte et l'exactitude en utilisant les deux déclarations suivantes -

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

Lorsque vous exécutez les instructions ci-dessus, vous verrez la sortie suivante -

Test Loss 0.08041584826191042
Test Accuracy 0.9837

Cela montre une précision de test de 98%, ce qui devrait être acceptable pour nous. Ce que cela signifie pour nous que dans 2% des cas, les chiffres manuscrits ne seraient pas classés correctement. Nous allons également tracer des métriques de précision et de perte pour voir comment le modèle fonctionne sur les données de test.

Tracer des mesures de précision

Nous utilisons l'enregistrement historypendant notre formation pour obtenir un graphique des mesures de précision. Le code suivant tracera la précision à chaque époque. Nous prenons la précision des données d'entraînement («acc») et la précision des données de validation («val_acc») pour le traçage.

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

Le tracé de sortie est illustré ci-dessous -

Comme vous pouvez le voir sur le diagramme, la précision augmente rapidement au cours des deux premières époques, indiquant que le réseau apprend rapidement. Ensuite, la courbe s'aplatit, indiquant qu'il ne faut pas trop d'époques pour entraîner davantage le modèle. En général, si la précision des données d'entraînement («acc») continue de s'améliorer alors que la précision des données de validation («val_acc») se détériore, vous rencontrez un surajustement. Cela indique que le modèle commence à mémoriser les données.

Nous allons également tracer les métriques de perte pour vérifier les performances de notre modèle.

Tracer des mesures de perte

Encore une fois, nous représentons la perte sur les données d'entraînement («perte») et de test («val_loss»). Ceci est fait en utilisant le code suivant -

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

La sortie de ce code est indiquée ci-dessous -

Comme vous pouvez le voir sur le diagramme, la perte sur l'ensemble d'apprentissage diminue rapidement pour les deux premières époques. Pour l'ensemble de test, la perte ne diminue pas au même rythme que l'ensemble d'apprentissage, mais reste presque stable pour plusieurs époques. Cela signifie que notre modèle se généralise bien aux données invisibles.

Maintenant, nous allons utiliser notre modèle entraîné pour prédire les chiffres de nos données de test.