Mengukur kecocokan regresi logistik

Pengantar Regresi dengan statsmodels di Python

Maarten Van den Broeck

Content Developer at DataCamp

Empat kemungkinan hasil

prediksi salah prediksi benar
aktual salah benar positif palsu
aktual benar negatif palsu benar
Pengantar Regresi dengan statsmodels di Python

Confusion matrix: jumlah tiap hasil

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
Pengantar Regresi dengan statsmodels di Python

Memvisualisasikan confusion matrix

conf_matrix = mdl_recency.pred_table()

print(conf_matrix)
[[141.              59.]
 [111.              89.]] 
negatif benar positif palsu
negatif palsu positif benar
from statsmodels.graphics.mosaicplot
import mosaic

mosaic(conf_matrix)

Plot mosaik untuk hasil model churn versus recency. Ada 200 observasi masing-masing untuk churn benar dan tidak churn benar, jadi setiap kolom lebarnya sama.

Pengantar Regresi dengan statsmodels di Python

Akurasi

Akurasi adalah proporsi prediksi yang benar.

$$ \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
Pengantar Regresi dengan statsmodels di Python

Sensitivitas

Sensitivitas adalah proporsi positif benar.

$$ \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
Pengantar Regresi dengan statsmodels di Python

Spesifisitas

Spesifisitas adalah proporsi negatif benar.

$$ \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
Pengantar Regresi dengan statsmodels di Python

Ayo berlatih!

Pengantar Regresi dengan statsmodels di Python

Preparing Video For Download...