¿Es bueno tu modelo?

Aprendizaje supervisado con scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Métricas de clasificación

  • Medir el rendimiento del modelo con precisión:

    • Fracción de muestras clasificadas correctamente

    • No siempre es una métrica útil

Aprendizaje supervisado con scikit-learn

Desequilibrio de clases

  • En una clasificación para predecir transacciones bancarias fraudulentas

    • El 99 % de las transacciones son legítimas; el 1 % son fraudulentas
  • Se podría construir un clasificador que predijera que NINGUNA de las transacciones son fraudulentas

    • Y obtendría un ¡99% de precisión!

    • Pero sería desastroso en cuanto a predecir las transacciones que sí son fraudulentas

    • Fracasa en su propósito original

  • Desequilibrio de clases: frecuencia desigual de las clases

  • Es necesaria otra forma de evaluar el rendimiento

Aprendizaje supervisado con scikit-learn

Matriz de confusión para evaluar el rendimiento de la clasificación

  • Matriz de confusión

confusion_matrix.png

Aprendizaje supervisado con scikit-learn

Evaluar el rendimiento de la clasificación

 

predicted_labels.png

Aprendizaje supervisado con scikit-learn

Evaluar el rendimiento de la clasificación

 

actual_labels.png

Aprendizaje supervisado con scikit-learn

Evaluar el rendimiento de la clasificación

 

confusion_matrix.png

Aprendizaje supervisado con scikit-learn

Evaluar el rendimiento de la clasificación

 

true_positive.png

Aprendizaje supervisado con scikit-learn

Evaluar el rendimiento de la clasificación

 

true_negative.png

Aprendizaje supervisado con scikit-learn

Evaluar el rendimiento de la clasificación

 

false_negative.png

Aprendizaje supervisado con scikit-learn

Evaluar el rendimiento de la clasificación

 

false_positive.png

Aprendizaje supervisado con scikit-learn

Evaluar el rendimiento de la clasificación

confusion_matrix.png

  • Precisión:

ch3_1_v3.030.png

Aprendizaje supervisado con scikit-learn

Precisión

precision.png

  • Precisión

precision_formula.png

  • Alta precisión = menor tasa de falsos positivos
  • Con una alta precisión, no se prevé que muchas transacciones legítimas sean fraudulentas.
Aprendizaje supervisado con scikit-learn

Sensibilidad o exhaustividad (recall))

recall.png

  • Sensibilidad o exhaustividad (recall)

recall_formula.png

  • Alta exhaustividad = menor tasa de falsos negativos
  • Con una alta exhaustividad, se predijeron correctamente la mayoría de las transacciones fraudulentas.
Aprendizaje supervisado con scikit-learn

Puntuación F1

  • Puntuación F1 = $2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
Aprendizaje supervisado con scikit-learn

Matriz de confusión en scikit-learn

from sklearn.metrics import classification_report, confusion_matrix

knn = KNeighborsClassifier(n_neighbors=7)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
Aprendizaje supervisado con scikit-learn

Matriz de confusión en scikit-learn

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
Aprendizaje supervisado con scikit-learn

Informe de clasificación en scikit-learn

print(classification_report(y_test, y_pred))
              precision    recall  f1-score   support

           0       0.86      0.99      0.92      1117
           1       0.76      0.16      0.26       217

    accuracy                           0.85      1334
   macro avg       0.81      0.57      0.59      1334
weighted avg       0.84      0.85      0.81      1334
Aprendizaje supervisado con scikit-learn

¡Vamos a practicar!

Aprendizaje supervisado con scikit-learn

Preparing Video For Download...