Como criar uma curva de recall de precisão em python


Ao usar modelos de classificação em aprendizado de máquina, duas métricas que costumamos usar para avaliar a qualidade do modelo são a precisão e o recall.

Precisão : Previsões positivas corretas em relação ao total de previsões positivas.

Isso é calculado da seguinte forma:

  • Precisão = Verdadeiros Positivos / (Verdadeiros Positivos + Falsos Positivos)

Lembrete : corrigindo previsões positivas em relação ao total de positivos reais

Isso é calculado da seguinte forma:

  • Lembrete = Verdadeiros Positivos / (Verdadeiros Positivos + Falsos Negativos)

Para visualizar a precisão e recuperação de um determinado modelo, podemos criar uma curva de recuperação de precisão . Esta curva mostra a compensação entre precisão e recall para diferentes limites.

Curva de recall de precisão em Python

O exemplo passo a passo a seguir mostra como criar uma curva de recall de precisão para um modelo de regressão logística em Python.

Etapa 1: importar pacotes

Primeiro, importaremos os pacotes necessários:

 from sklearn import datasets
from sklearn. model_selection import train_test_split
from sklearn. linear_model import LogisticRegression
from sklearn. metrics import precision_recall_curve
import matplotlib. pyplot as plt

Passo 2: Ajustar o modelo de regressão logística

A seguir, criaremos um conjunto de dados e ajustaremos um modelo de regressão logística a ele:

 #create dataset with 5 predictor variables
X, y = datasets. make_classification (n_samples= 1000 ,
                                    n_features= 4 ,
                                    n_informative= 3 ,
                                    n_redundant= 1 ,
                                    random_state= 0 )

#split dataset into training and testing set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .3 , random_state= 0 )

#fit logistic regression model to dataset
classifier = LogisticRegression()
classify. fit (X_train, y_train)

#use logistic regression model to make predictions
y_score = classify. predict_proba (X_test)[:, 1 ]

Etapa 3: Crie a curva de recuperação de precisão

A seguir, calcularemos a precisão e recuperação do modelo e criaremos uma curva de recuperação de precisão:

 #calculate precision and recall
precision, recall, thresholds = precision_recall_curve(y_test, y_score)

#create precision recall curve
fig, ax = plt. subplots ()
ax. plot (recall, precision, color=' purple ')

#add axis labels to plot
ax. set_title (' Precision-Recall Curve ')
ax. set_ylabel (' Precision ')
ax. set_xlabel (' Recall ')

#displayplot
plt. show () 

Curva de recall de precisão em Python

O eixo x mostra a recuperação e o eixo y mostra a precisão para diferentes limites.

Observe que à medida que o recall aumenta, a precisão diminui.

Isso representa o compromisso entre as duas métricas. Para aumentar o recall do nosso modelo, a precisão deve diminuir e vice-versa.

Recursos adicionais

Como realizar regressão logística em Python
Como criar uma matriz de confusão em Python
Como interpretar uma curva ROC (com exemplos)

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *