Cara membuat kurva penarikan presisi dengan python
Saat menggunakan model klasifikasi dalam pembelajaran mesin, dua metrik yang sering kita gunakan untuk mengevaluasi kualitas model adalah presisi dan perolehan.
Akurasi : Benar prediksi positif relatif terhadap total prediksi positif.
Ini dihitung sebagai berikut:
- Akurasi = Positif Benar / (Positif Benar + Positif Palsu)
Pengingat : Mengoreksi prediksi positif terhadap total positif aktual
Ini dihitung sebagai berikut:
- Pengingat = Positif Benar / (Positif Benar + Negatif Palsu)
Untuk memvisualisasikan presisi dan perolehan model tertentu, kita dapat membuat kurva presisi-recall . Kurva ini menunjukkan trade-off antara presisi dan perolehan untuk ambang batas yang berbeda.
Contoh langkah demi langkah berikut menunjukkan cara membuat kurva penarikan presisi untuk model regresi logistik dengan Python.
Langkah 1: Impor paket
Pertama, kami akan mengimpor paket yang diperlukan:
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
Langkah 2: Sesuaikan model regresi logistik
Selanjutnya, kita akan membuat kumpulan data dan menyesuaikan model regresi logistik ke dalamnya:
#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 ]
Langkah 3: Buat kurva perolehan presisi
Selanjutnya, kita akan menghitung presisi dan perolehan model serta membuat kurva perolehan presisi:
#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 ()
Sumbu x menunjukkan perolehan dan sumbu y menunjukkan presisi untuk ambang batas yang berbeda.
Perhatikan bahwa seiring bertambahnya perolehan, presisi menurun.
Ini mewakili kompromi antara kedua metrik tersebut. Untuk meningkatkan perolehan model kita, presisi harus diturunkan dan sebaliknya.
Sumber daya tambahan
Cara Melakukan Regresi Logistik dengan Python
Cara Membuat Matriks Kebingungan dengan Python
Cara Menafsirkan Kurva ROC (dengan Contoh)