Kvantifiera logistisk regressionsanpassning

Introduktion till regression med statsmodels i Python

Maarten Van den Broeck

Content Developer at DataCamp

De fyra utfallen

förutsedd falskt förutsedd sant
faktiskt falskt korrekt falskt positivt
faktiskt sant falskt negativt korrekt
Introduktion till regression med statsmodels i Python

Förvirringsmatris: antal utfall

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
Introduktion till regression med statsmodels i Python

Visualisera förvirringsmatrisen

conf_matrix = mdl_recency.pred_table()

print(conf_matrix)
[[141.              59.]
 [111.              89.]] 
sant negativt falskt positivt
falskt negativt sant positivt
from statsmodels.graphics.mosaicplot
import mosaic

mosaic(conf_matrix)

Ett mosaikdiagram över utfallen för modellen churn kontra recency. Det finns 200 observationer vardera för faktiska churns och faktiska icke-churns, så varje kolumn har samma bredd.

Introduktion till regression med statsmodels i Python

Noggrannhet

Noggrannhet är andelen korrekta förutsägelser.

$$ \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
Introduktion till regression med statsmodels i Python

Känslighet

Känslighet är andelen sant positiva.

$$ \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
Introduktion till regression med statsmodels i Python

Specificitet

Specificitet är andelen sant negativa.

$$ \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
Introduktion till regression med statsmodels i Python

Nu kör vi en övning!

Introduktion till regression med statsmodels i Python

Preparing Video For Download...