La función recall_score

En Scikit-Learn tenemos acceso a esta función en sklearn.metrics.recall_score:

from sklearn.metrics import recall_score

y_real = [0, 1, 1, 0, 1]
y_pred = [0, 1, 0, 1, 0]
recall_score(y_real, y_pred)

0.3333333333333333

En este ejemplo hemos detectado correctamente un valor de los tres que había en la variable objetivo, por lo que la exhaustividad ha sido de 1/3 = 0.333.

Otro ejemplo: si de 100 transacciones hay una fraudulenta, y hemos marcado las 100 como fraudulentas, nuestra precisión (ratio entre positivos verdaderos, 1, y positivos totales predichos, 100) sería de 1 / 100 = 0.01 y la exhaustividad sería el ratio entre los positivos verdaderos, 1, y los positivos reales, 1: 1/1 = 1

y_real = [1] + [0] * 99
y_pred = [1] * 100

np.flip(confusion_matrix(y_real, y_pred).T)

Matriz de confusión

precision_score(y_real, y_pred, labels = [0, 1], pos_label = 1)

0.01

recall_score(y_real, y_pred, labels = [0, 1], pos_label = 1)

1.0