Как напечатать ярлыки и названия столбцов для Confusion Matrix? - PullRequest
0 голосов
/ 26 февраля 2019

Я получаю запутанную матрицу, но поскольку в моем фактическом наборе данных много категорий классификации, это трудно понять.

Пример -

>>> from sklearn.metrics import confusion_matrix
>>> y_test
['a', 'a', 'b', 'c', 'd', 'd', 'e', 'a', 'c']
>>> y_pred
['b', 'a', 'b', 'c', 'a', 'd', 'e', 'a', 'c']
>>> 
>>> 
>>> confusion_matrix(y_test, y_pred)
array([[2, 1, 0, 0, 0],
       [0, 1, 0, 0, 0],
       [0, 0, 2, 0, 0],
       [1, 0, 0, 1, 0],
       [0, 0, 0, 0, 1]], dtype=int64)

Но как напечатать метки / столбецимена для лучшего понимания?

Я даже пробовал это -

>>> pd.factorize(y_test)
(array([0, 0, 1, 2, 3, 3, 4, 0, 2], dtype=int64), array(['a', 'b', 'c', 'd', 'e'], dtype=object))
>>> pd.factorize(y_pred)
(array([0, 1, 0, 2, 1, 3, 4, 1, 2], dtype=int64), array(['b', 'a', 'c', 'd', 'e'], dtype=object))

Любая помощь, пожалуйста?

1 Ответ

0 голосов
/ 26 февраля 2019

Попробуйте что-то вроде этого:

from sklearn.metrics import confusion_matrix
import pandas as pd
import numpy as np
y_test = ['a', 'a', 'b', 'c', 'd', 'd', 'e', 'a', 'c']
y_pred = ['b', 'a', 'b', 'c', 'a', 'd', 'e', 'a', 'c']


labels = np.unique(y_test)
a =  confusion_matrix(y_test, y_pred, labels=labels)

pd.DataFrame(a, index=labels, columns=labels)

Вывод:

   a  b  c  d  e
a  2  1  0  0  0
b  0  1  0  0  0
c  0  0  2  0  0
d  1  0  0  1  0
e  0  0  0  0  1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...