Quantificando o ajuste da regressão logística

Introdução à Regressão com statsmodels em Python

Maarten Van den Broeck

Content Developer at DataCamp

Os quatro resultados

previsto falso previsto verdadeiro
real falso correto falso positivo
real verdadeiro falso negativo correto
Introdução à Regressão com statsmodels em Python

Matriz de confusão: contagem de resultados

actual_response = churn["has_churned"]
predicted_response = np.round(mdl_recency.predict())
outcomes = pd.DataFrame({"actual_response": actual_response,
                         "predicted_response": predicted_response})
print(outcomes.value_counts(sort=False))
actual_response  predicted_response
0                0.0                   141
                 1.0                    59
1                0.0                   111
                 1.0                    89
Introdução à Regressão com statsmodels em Python

Visualizando a matriz de confusão

conf_matrix = mdl_recency.pred_table()

print(conf_matrix)
[[141.              59.]
 [111.              89.]] 
verdadeiro negativo falso positivo
falso negativo verdadeiro positivo
from statsmodels.graphics.mosaicplot
import mosaic

mosaic(conf_matrix)

Um gráfico mosaico dos resultados do modelo churn versus recency. Há 200 observações para churns verdadeiros e não-churns verdadeiros, então cada coluna tem a mesma largura.

Introdução à Regressão com statsmodels em Python

Acurácia

Acurácia é a proporção de previsões corretas.

$$ \text{accuracy} = \frac{TN + TP}{TN + FN + FP + TP} $$

 [[141.,  59.],
  [111.,  89.]]
TN = conf_matrix[0,0]
TP = conf_matrix[1,1]
FN = conf_matrix[1,0]
FP = conf_matrix[0,1]
acc = (TN + TP) / (TN + TP + FN + FP)
print(acc)
0.575
Introdução à Regressão com statsmodels em Python

Sensibilidade

Sensibilidade é a proporção de verdadeiros positivos.

$$ \text{sensitivity} = \frac{TP}{FN + TP} $$

 [[141.,  59.],
  [111.,  89.]]
TN = conf_matrix[0,0]
TP = conf_matrix[1,1]
FN = conf_matrix[1,0]
FP = conf_matrix[0,1]
sens = TP / (FN + TP)
print(sens)
0.445
Introdução à Regressão com statsmodels em Python

Especificidade

Especificidade é a proporção de verdadeiros negativos.

$$ \text{specificity} = \frac{TN}{TN + FP} $$

 [[141.,  59.],
  [111.,  89.]]
TN = conf_matrix[0,0]
TP = conf_matrix[1,1]
FN = conf_matrix[1,0]
FP = conf_matrix[0,1]
spec = TN / (TN + FP)
print(spec)
0.705
Introdução à Regressão com statsmodels em Python

Vamos praticar!

Introdução à Regressão com statsmodels em Python

Preparing Video For Download...