Parce que confusion-matrix
de scikit-learn
ne pouvait pas obtenir chaque index.
(Peut-être que tu peux?)
Par exemple, pour déterminer si un chat est un chat, 1 est un chat et 0 n'est pas un chat. Prédisez les «prédictions» et utilisez les «étiquettes» comme données de réponse correctes.
Convertir en une matrice numpy
import numpy as np
preds = [0., 1., 1., ..., 0., 1., 0.] #Une liste appropriée de 0 ou 1
labels = [0., 1., 1., ..., 0., 1., 0.] #Une liste appropriée de 0 ou 1
preds = np.array(preds)
labels = np.array(labels)
Indexer le chat
one_ind_p = preds == 1
one_ind_l = labels == 1
zero_ind_p = np.logical_not(one_ind_p) #Inversion de booléen
zero_ind_l = np.logical_not(one_ind_l)
# array([False, True, True, ..., False, True, False])Cela devient des données comme
Obtenez l'index de chaque élément de la matrice de confusion
tp = np.argwhere(one_ind_l & one_ind_p)
fp = np.argwhere(zero_ind_l & one_ind_p)
fn = np.argwhere(one_ind_l & zero_ind_p)
tn = np.argwhere(zero_ind_l & zero_ind_p)
appendix C'est la matrice de confusion http://ibisforest.org/index.php?F%E5%80%A4
Recommended Posts