Cuantificarea ajustării regresiei logistice

Introducere în regresia cu statsmodels în Python

Maarten Van den Broeck

Content Developer at DataCamp

Cele patru rezultate

prezis fals prezis adevărat
actual fals corect fals pozitiv
actual adevărat fals negativ corect
Introducere în regresia cu statsmodels în Python

Matricea de confuzie: numărul de rezultate

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
Introducere în regresia cu statsmodels în Python

Vizualizarea matricei de confuzie

conf_matrix = mdl_recency.pred_table()

print(conf_matrix)
[[141.              59.]
 [111.              89.]] 
adevărat negativ fals pozitiv
fals negativ adevărat pozitiv
from statsmodels.graphics.mosaicplot
import mosaic

mosaic(conf_matrix)

Grafic mozaic al rezultatelor modelului churn vs. recență. Există câte 200 de observații pentru fiecare clasă, deci fiecare coloană are aceeași lățime.

Introducere în regresia cu statsmodels în Python

Acuratețe

Acuratețea este proporția de predicții corecte.

$$ \text{acuratețe} = \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
Introducere în regresia cu statsmodels în Python

Sensibilitate

Sensibilitatea este proporția de pozitive reale.

$$ \text{sensibilitate} = \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
Introducere în regresia cu statsmodels în Python

Specificitate

Specificitatea este proporția de negative reale.

$$ \text{specificitate} = \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
Introducere în regresia cu statsmodels în Python

Să exersăm!

Introducere în regresia cu statsmodels în Python

Preparing Video For Download...