подход 1:. Binary Классификация
from sklearn.metrics import confusion_matrix as cm
import pandas as pd
y_test = [1, 0, 0]
y_pred = [1, 0, 0]
confusion_matrix=cm(y_test, y_pred)
list1 = ["Actual 0", "Actual 1"]
list2 = ["Predicted 0", "Predicted 1"]
pd.DataFrame(confusion_matrix, list1,list2)
Approa ч 2: MultiClass Классификация
Хотя sklearn.metrics.confusion_matrix обеспечивает цифровую матрицу, вы можете создать 'отчет', используя следующее:
import pandas as pd
y_true = pd.Series([2, 0, 2, 2, 0, 1, 1, 2, 2, 0, 1, 2])
y_pred = pd.Series([0, 0, 2, 1, 0, 2, 1, 0, 2, 0, 2, 2])
pd.crosstab(y_true, y_pred, rownames=['True'], colnames=['Predicted'], margins=True)
что приводит:
Predicted 0 1 2 All
True
0 3 0 0 3
1 0 1 2 3
2 2 1 3 6
All 5 2 5 12
Это позволяет нам видеть, что:
- Диагональные элементы показывают количество co rrect классификации для каждого класса: 3, 1 и 3 для классов 0, 1 и 2.
- Недиагональные элементы предоставляют ошибочные классификации: например, 2 класса 2 были неправильно классифицированы как 0, ни один из классов 0 были классифицированы как 2 и т. д.
- Общее количество классификаций для каждого класса в обоих
y_true
и y_pred
, от «Все» подытогами
Этот метод также работает для текстовых меток, и для большого количества образцов в наборе данных может быть продлен для предоставления процентных отчетов.