Classification Metrics
Confusion Matrix
Predicted | ||
---|---|---|
Actual class | Positive | Negative |
Positive | True Positive (TP) | False Negative (FN) |
Negative | False Positive (FP) | True Negative (TN) |
from sklearn.metrics import confusion_matrix
confusion_matrix(y_true, y_pred)
Accuaracy
Usar Accuaracy cuando quieres medir la performance de un modelo de clasificacion. Es la proporcion de predicciones correctas sobre el total de predicciones realizadas.
- Accuracy =
from sklearn.metrics import accuracy_score
accuracy_score(y_true, y_pred)
Precision
Usar Precision cuanto quieres minimizar los falsos positivos (Errores de tipo I). Es la proporcion de predicciones correctas sobre el total de predicciones realizadas.
- Precision =
from sklearn.metrics import precision_score
precision_score(y_true, y_pred)
Recall
Usar Recall cuando quieres minimizar los falsos negativos (Errores de tipo II). Es la proporcion de predicciones correctas sobre el total de predicciones realizadas.
- Recall =
from sklearn.metrics import recall_score
recall_score(y_true, y_pred)
F1 Score
Usar F1 Score cuando quieres minimizar los falsos negativos y falsos positivos. Es la media armonica entre Precision y Recall.
- F1 Score =
from sklearn.metrics import f1_score
f1_score(y_true, y_pred)
ROC Curve
Usar ROC Curve cuando quieres evaluar el rendimiento de un modelo de clasificacion binaria. Es una grafica de la tasa de verdaderos positivos (TPR) frente a la tasa de falsos positivos (FPR) para diferentes umbrales de probabilidad de clasificacion.
- TPR =
- FPR =
from sklearn.metrics import roc_curve, roc_auc_score
import matplotlib.pyplot as plt
fpr, tpr, thresholds = roc_curve(y_true, y_pred)
auc = roc_auc_score(y_true, y_pred)
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % auc)
plt.plot([0, 1], [0, 1], 'k--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve')
plt.show()
Classification Report
Usar Classification Report cuando quieres evaluar el rendimiento de un modelo de clasificacion. Es un resumen de las metricas de clasificacion para cada clase del problema.
from sklearn.metrics import classification_report
print(classification_report(y_true, y_pred))
Regression Metrics
Mean Absolute Error (MAE)
Usar MAE cuando quieres medir el error medio de un modelo de regresion. Es la media de la diferencia absoluta entre las predicciones y los valores reales.
- MAE =
from sklearn.metrics import mean_absolute_error
mean_absolute_error(y_true, y_pred)
Mean Squared Error (MSE)
Usar MSE cuando quieres penalizar los errores mas grandes. Es la mejor metrica cuando le preocupa las grandes desviaciones en los errores.
- MSE =
from sklearn.metrics import mean_squared_error
mean_squared_error(y_true, y_pred)
Root Mean Squared Error (RMSE)
Usar RMSE cuando quieres penalizar los errores mas grandes. Es la mejor metrica cuando desea una medida que sea menos sensible a los valores atipicos.
- RMSE =
from sklearn.metrics import mean_squared_error
mean_squared_error(y_true, y_pred, squared=False)
# or
import numpy as np
np.sqrt(mean_squared_error(y_true, y_pred))
R-Squared (R2)
- R2 =
from sklearn.metrics import r2_score
r2_score(y_true, y_pred)