Olá, Rafael! Tudo tranquilo com você?
Você pode checar essa informação de algumas formas, aqui vou apresentar duas delas. Se não for exatamente o que procura nos retorne por aqui, tudo bem?
- 1: Com o método value_counts()
teste_y.value_counts()
Saída:
B 105
M 66
Name: diagnostico, dtype: int64
Como podemos observar a quantidade total de câncer benigno é 105 e de câncer maligno é 66 no teste_y
, que é a variável passada para a realizar a construção da matriz de confusão. Agora vamos voltar a nossa matriz gerada em aula:
![Matriz de confusão onde o eixo y representa os valores reais e o eixo x os valores preditos. Em [0, 0] está o valor 100, que representa o número de câncer benigno que foram classificados como benignos. Em [0, 1] está o valor 5, que representa o número de câncer benigno que foram classificados como malignos. [1, 0] está o valor 8 que representa o número de câncer malignos que foram classificados como benignos. Em [1, 1] está o valor 58 que representa o valor de câncer malignos que foram classificados como malignos](https://caelum-online-public.s3.amazonaws.com/1210-machine-learning-lidando-com-dados-de-muitas-dimensoes/Transcri%C3%A7%C3%A3o/figura11.png)
Se somarmos os valores da matriz de confusão do eixo Y veremos que na linha 0 soma resulta em 105, que de acordo com nosso .value_counts()
representa o câncer do tipo 'B'. Se somarmos os valores da linha 1 veremos que resulta em 66, que de acordo com o .value_counts()
é o número de câncer do tipo 'M'. Com isso você consegue comprovar que a linha 0 são os câncer 'Benignos' e a linha 1 os câncer classificados como 'Malignos'.
- 2: Utilizando a classe
ConfusionMatrixDisplay:
A outra forma de você verificar isso é mais legal por ser visual e pode ser realizada de acordo com o código abaixo:
from sklearn.metrics import ConfusionMatrixDisplay
ConfusionMatrixDisplay.from_predictions(teste_y, classificador.predict(teste_kbest), labels=teste_y.unique())
plt.grid(False)
Saída:
![Matriz de confusão onde o eixo y representa os valores reais e o eixo x os valores preditos. No lugar dos 0's e 1's estão o labels. A linha 0 estpa como 'B' e na linha 1 está 'M'. Em [B, B] está o valor 100, que representa o número de câncer benigno que foram classificados como benignos. Em [B, M] está o valor 5, que representa o número de câncer benigno que foram classificados como malignos. [M, B] está o valor 8 que representa o número de câncer malignos que foram classificados como benignos. Em [M, M] está o valor 58 que representa o valor de câncer malignos que foram classificados como malignos](https://i.imgur.com/hQF9TEk.png)
Dessa forma você consegue visualizar exatamente qual linha representa o câncer benigno (B) e o maligno (M). Para obter esse resultado utilizei o método from_predictions
da classe ConfusionMatrixDisplay
. Você pode está conferindo mais detalhes sobre essa classe na documentação. Essa classe tem o objetivo de permitir a visualização da matriz de confusão sem o uso de bibliotecas externas, como o seaborn.
Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.
:)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!