Qual é o desempenho de seu modelo?

Aprendizado Supervisionado com o scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Métricas de classificação

  • Avaliação do desempenho do modelo com a acurácia (accuracy):

    • Proporção de amostras classificadas corretamente

    • Nem sempre é uma métrica útil

Aprendizado Supervisionado com o scikit-learn

Desequilíbrio de classes

  • Classificação para prever transações bancárias fraudulentas

    • 99% das transações são legítimas; 1% são fraudulentas
  • É possível criar um classificador que preveja que NENHUMA das transações é fraudulenta

    • Acurácia de 99%!

    • Mas péssimo para prever transações fraudulentas

    • Não cumpre o objetivo inicial

  • Desequilíbrio de classes: frequência desigual de classes

  • Requer uma maneira diferente de avaliar o desempenho

Aprendizado Supervisionado com o scikit-learn

Matriz de confusão para avaliação do desempenho da classificação

  • Matriz de confusão

confusion_matrix.png

Aprendizado Supervisionado com o scikit-learn

Avaliação do desempenho da classificação

 

predicted_labels.png

Aprendizado Supervisionado com o scikit-learn

Avaliação do desempenho da classificação

 

actual_labels.png

Aprendizado Supervisionado com o scikit-learn

Avaliação do desempenho da classificação

 

confusion_matrix.png

Aprendizado Supervisionado com o scikit-learn

Avaliação do desempenho da classificação

 

true_positive.png

Aprendizado Supervisionado com o scikit-learn

Avaliação do desempenho da classificação

 

true_negative.png

Aprendizado Supervisionado com o scikit-learn

Avaliação do desempenho da classificação

 

false_negative.png

Aprendizado Supervisionado com o scikit-learn

Avaliação do desempenho da classificação

 

false_positive.png

Aprendizado Supervisionado com o scikit-learn

Avaliação do desempenho da classificação

confusion_matrix.png

  • Acurácia:

ch3_1_v3.030.png

Aprendizado Supervisionado com o scikit-learn

Precisão

precision.png

  • Precisão

precision_formula.png

  • Alta precisão = menor taxa de falsos positivos
  • Alta precisão: não se prevê que muitas transações legítimas sejam fraudulentas
Aprendizado Supervisionado com o scikit-learn

Sensibilidade

recall.png

  • Sensibilidade (recall)

recall_formula.png

  • Alta sensibilidade = menor taxa de falsos negativos
  • Alta sensibilidade: previu corretamente a maioria das transações fraudulentas
Aprendizado Supervisionado com o scikit-learn

Medida F (F1-score)

  • Medida F: $2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
Aprendizado Supervisionado com o scikit-learn

Matriz de confusão no 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)
Aprendizado Supervisionado com o scikit-learn

Matriz de confusão no scikit-learn

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
Aprendizado Supervisionado com o scikit-learn

Relatório de classificação no 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
Aprendizado Supervisionado com o scikit-learn

Vamos praticar!

Aprendizado Supervisionado com o scikit-learn

Preparing Video For Download...