Dans le blog Keras sur la formation des convnets à partir de zéro , le code affiche uniquement le réseau fonctionnant sur les données de formation et de validation. Qu'en est-il des données de test? Les données de validation sont-elles les mêmes que les données de test (je pense que non). S'il y avait un dossier de test distinct sur des lignes similaires à celles des dossiers de train et de validation, comment obtenir une matrice de confusion pour les données de test. Je sais que nous devons utiliser scikit learn ou un autre package pour ce faire, mais comment puis-je obtenir quelque chose dans le sens des probabilités de classe pour les données de test? J'espère l'utiliser pour la matrice de confusion.
16
Réponses:
Pour obtenir une matrice de confusion à partir des données de test, vous devez passer par deux étapes:
Par exemple, utilisez
model.predict_generator
pour prédire les 2000 premières probabilités du générateur de test.Par exemple, comparez les probabilités avec le cas où il y a respectivement 1000 chats et 1000 chiens.
Remarque supplémentaire sur les données de test et de validation
La documentation Keras utilise trois ensembles de données différents: les données d'apprentissage, les données de validation et les données de test. Les données d'apprentissage sont utilisées pour optimiser les paramètres du modèle. Les données de validation sont utilisées pour faire des choix sur les méta-paramètres, par exemple le nombre d'époques. Après avoir optimisé un modèle avec des méta-paramètres optimaux, les données de test sont utilisées pour obtenir une estimation juste des performances du modèle.
la source
np.array([0] * 1000 + [1] * 1000)
vous, vous pouvez obtenir le même tableau en faisantgenerator.classes
Voici un code que j'ai essayé et travaillé pour moi:
Vous pouvez ensuite utiliser:
Assurez-vous que vous utilisez
shuffle=False
dans votre générateur de test (dans mon cas, c'est un générateur de validation) et réinitialisez-le en utilisantvalidation_generator.reset()
avant de faire vos prédictions.la source
Pour la matrice de confusion, vous devez utiliser le package sklearn. Je ne pense pas que Keras puisse fournir une matrice de confusion. Pour prédire des valeurs sur l'ensemble de test, il suffit d'appeler la méthode model.predict () pour générer des prédictions pour l'ensemble de test. Le type de valeurs de sortie dépend de votre type de modèle, c'est-à-dire discret ou probabilités.
la source