Un exemple de comment créer et tracer une matrice de confusion (crosstab) à partir de deux colonnes d'une dataframe avec pandas en python:
Créer une dataframe
Soit la dataframe suivante
import pandas as pd
data = {'prediction':['a','a','a','b','b','b','c','c','c'],
'actual':['a','a','b','b','b','b','b','c','c']}
df = pd.DataFrame(data)
print(df)
donne
prediction actual
0 a a
1 a a
2 a b
3 b b
4 b b
5 b b
6 c b
7 c c
8 c c
Créer une matrice de confusion
Pour créer une matrice de confusion en utilisant les colonnes 'prediction' et 'actual' on peut utiliser la fonction pandas crosstab comme ceci:
contingency_matrix = pd.crosstab(df['prediction'], df['actual'])
print(contingency_matrix)
donne
actual a b c
prediction
a 2 1 0
b 0 3 0
c 0 1 2
Tracer une matrice de confusion
Pour tracer une matrice de confusion on peut ensuite utiliser par exemple matplotlib
import matplotlib.pyplot as plt
import seaborn as sn
plt.clf()
ax = fig.add_subplot(111)
ax.set_aspect(1)
res = sn.heatmap(contingency_matrix.T, annot=True, fmt='.2f', cmap="YlGnBu", cbar=False)
plt.savefig("crosstab_pandas.png", bbox_inches='tight', dpi=100)
plt.show()
donne