No blog Keras sobre convnets de treinamento do zero , o código mostra apenas a rede em execução nos dados de treinamento e validação. E os dados de teste? Os dados de validação são os mesmos que os dados de teste (acho que não). Se havia uma pasta de teste separada em linhas semelhantes às pastas de treinamento e validação, como obter uma matriz de confusão para os dados de teste. Sei que precisamos usar o scikit learn ou algum outro pacote para fazer isso, mas como obtenho algo parecido com as probabilidades de classe para dados de teste? Espero usar isso para a matriz de confusão.
16
Respostas:
Para obter uma matriz de confusão a partir dos dados de teste, você deve seguir duas etapas:
Por exemplo, use
model.predict_generator
para prever as primeiras 2000 probabilidades do gerador de teste.Por exemplo, compare as probabilidades com o caso de haver 1000 gatos e 1000 cães, respectivamente.
Nota adicional sobre dados de teste e validação
A documentação do Keras usa três conjuntos diferentes de dados: dados de treinamento, dados de validação e dados de teste. Os dados de treinamento são usados para otimizar os parâmetros do modelo. Os dados de validação são usados para fazer escolhas sobre os meta-parâmetros, por exemplo, o número de épocas. Após a otimização de um modelo com meta-parâmetros ideais, os dados de teste são usados para obter uma estimativa justa do desempenho do modelo.
fonte
np.array([0] * 1000 + [1] * 1000)
você, pode obter a mesma matriz fazendogenerator.classes
Aqui está um código que tentei e trabalhei para mim:
Você pode então usar:
Certifique-se de usar
shuffle=False
em seu gerador de teste (no meu caso, é um gerador de validação) e redefina-o usandovalidation_generator.reset()
antes de fazer suas previsões.fonte
Para matriz de confusão, você deve usar o pacote sklearn. Não acho que Keras possa fornecer uma matriz de confusão. Para prever valores no conjunto de testes, basta chamar o método model.predict () para gerar previsões para o conjunto de testes. O tipo de valores de saída depende do tipo de modelo, ou seja, discreto ou probabilidades.
fonte