Запрос матрицы путаницы

У меня есть приведенный ниже код для создания матрицы путаницы, где он генерирует тепловую карту и accuracy_score.

ИСТОЧНИК

введите здесь описание изображения

КОД

import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
from sklearn import metrics

data = pd.read_excel(r"\Confusion Matrix.xlsx")

df = pd.DataFrame(data)
confusion_matrix = pd.crosstab(df['Actual'], df['Pred'], rownames=['Actual'], colnames=['Predicted'], margins = True)

sn.heatmap(confusion_matrix, annot=True)
plt.show()

accuray_score_in_percentage = accuracy_score(['Actual'], ['Pred'])
accuray_score_in_count = accuracy_score(['Actual'], ['Pred'], normalize=False)

print('The Precentage Accuracy is : ', accuray_score_in_percentage)
print('The Count of corrects are : ', accuray_score_in_count)

ВЫВОД

введите здесь описание изображения

Из приведенного выше вывода видно, что Точность предварительного расчета: 0,0 и Количество исправлений: 0, но должно быть Точность предварительного расчета: 0,3< /strong> и Количество исправлений: 3. Может ли кто-нибудь помочь мне изменить код, чтобы он показывал правильные оценки точности.

С уважением,

Бхарат Викас


person Vikas    schedule 28.08.2020    source источник
comment
При вызове «accuracy_score» вы забыли упомянуть фрейм данных. Вы упомянули только имя столбца.   -  person hypnos    schedule 28.08.2020


Ответы (1)


Вам не нужна матрица путаницы для вычисления точности.
Попробуйте :

accuray_score_in_percentage = accuracy_score(df['Actual'], df['Pred'])  
accuray_score_in_count = accuracy_score(df['Actual'], df['Pred'], normalize=False)

Если вы действительно хотите использовать свою матрицу путаницы, вы можете сделать:

accuray_score_in_percentage = (confusion_matrix.loc[0,0]+confusion_matrix.loc[1,1])/confusion_matrix.loc["All","All"]
accuray_score_in_count = confusion_matrix.loc[0,0]+confusion_matrix.loc[1,1]
person Ismael EL ATIFI    schedule 28.08.2020
comment
Я заменил accuray_score_in_percentage = accuracy_score(['Actual'], ['Pred']) на accuracy_score(confusion_matrix['Actual'], confusion_matrix['Pred']), но выдает ошибку **KeyError: Actual** - person Vikas; 28.08.2020
comment
Извините, я ошибся в предыдущем ответе. Я обновил его. - person Ismael EL ATIFI; 28.08.2020