У меня есть 2 numpy
массивы, y_actual
(фактические значения) и y_pred
(прогнозы модели ML), оба имеют двоичные значения, либо 0, либо 1.
В настоящее время я формируюconfusion matrix
на основе следующего синтаксиса: -
df_confusion = pd.crosstab(y_actual, y_pred, rownames=['Actual'], colnames=['Predicted'], margins=True)
print('Confusion Matrix:')
print(df_confusion)
Однако я проверил SO и другую документацию и не смог найти исчерпывающий пример с минимальным кодом, который может помочь мне выполнить следующее: -
- Сформируйте фигуру путаницы (используя
matplotlib
или Seaborn
, в которой отображается фактическое количество выборок для каждого класса, наряду с метками имен для 0 обозначены Class A
, и1 как Class B
. - Постройте аналогичный график матрицы смешения, в котором процент выборок, относящихся к каждому классу, отображается (например, истинный положительный коэффициент, уровень ложных срабатываний и т. Д.) В матрице ошибок.
- Построить еще одну матрицу путаницы, которая показывает матрицу путаницы, а также шкалу с правой стороны, показывающую количество образцов (например, вот так)plot_confusion_matrix_001.png .Сформируйте аналогичную путаницу для нормализованного случая, как https://scikit -learn.org / stable / _images / sphx_glr_plot_confusion_matrix_001.png .
Кроме того, как указано в вопросе, цель состоит в том, чтобы маркировать класс 0 как Class A
и класс 1 как Class B
, поскольку в настоящее время они показывают только как 0
и 1
не выглядит очень связным.Я бы предпочел, чтобы минимальный код выполнял то же самое и генерировал последовательные и красивые графики Confusion Matrix.Любая помощь в этом отношении высоко ценится.