Rumah > Artikel > pembangunan bahagian belakang > Apakah prestasi model python ROC dan AUC
ROC
Analisis dan kawasan di bawah lengkung (AUC) ialah alat yang digunakan secara meluas dalam sains data, yang dipinjam daripada pemprosesan isyarat, untuk menilai kualiti model di bawah parameterisasi yang berbeza, atau untuk membandingkan dua atau prestasi pelbagai model.
Metrik prestasi tradisional, seperti ketepatan dan ingatan semula, sangat bergantung pada pemerhatian sampel positif. Oleh itu, ROC dan AUC menilai kualiti menggunakan kadar positif benar dan positif palsu, dengan mengambil kira pemerhatian positif dan negatif.
Terdapat beberapa langkah daripada menguraikan masalah kepada menyelesaikannya menggunakan pembelajaran mesin. Ia melibatkan pengumpulan data, pembersihan dan kejuruteraan ciri, membina model, dan akhirnya, menilai prestasi model.
Apabila anda menilai kualiti model, anda biasanya menggunakan metrik seperti ketepatan dan ingat semula, yang juga dikenali sebagai keyakinan dan kepekaan, masing-masing, dalam bidang perlombongan data.
Metrik ini membandingkan nilai ramalan dengan pemerhatian sebenar, biasanya daripada set penahanan, digambarkan menggunakan matriks kekeliruan.
Mari kita fokus pada ketepatan, juga dikenali sebagai nilai ramalan positif. Menggunakan matriks kekeliruan, anda boleh membina Ketepatan sebagai nisbah semua positif benar kepada semua positif yang diramalkan.
Imbas kembali, juga dikenali sebagai kadar positif benar, mewakili nisbah positif benar kepada semua positif yang diperhatikan dan diramalkan.
Menggunakan set pemerhatian yang berbeza dalam matriks kekeliruan untuk menerangkan Precision
dan Recall
, anda boleh mula memahami cara metrik ini memberikan pandangan prestasi model .
Perlu diambil perhatian bahawa Precision dan Recall hanya menumpukan pada contoh dan ramalan positif, tanpa mengambil kira sebarang contoh negatif. Tambahan pula, mereka tidak membandingkan prestasi model dengan senario median, yang hanya tekaan rawak.
ROC berfungsi sebagai alat ringkasan untuk menggambarkan pertukaran antara Precision dan Recall. Analisis ROC menggunakan lengkung ROC untuk menentukan berapa banyak nilai isyarat binari tercemar oleh hingar, iaitu, rawak. Ia menyediakan ringkasan sensitiviti dan kekhususan untuk peramal berterusan ke atas julat titik operasi. Keluk ROC diperoleh dengan memplotkan kadar positif palsu pada paksi-x terhadap kadar positif sebenar pada paksi-y.
Oleh kerana kadar positif sebenar ialah kebarangkalian untuk mengesan isyarat dan kadar positif palsu ialah kebarangkalian positif palsu, analisis ROC juga digunakan secara meluas dalam penyelidikan perubatan untuk menentukan ambang yang boleh mengesan penyakit atau tingkah laku lain. .
Model sempurna akan mempunyai kadar positif palsu dan kadar positif benar bersamaan dengan 1, jadi ia akan menjadi titik operasi tunggal di penjuru kiri sebelah atas plot ROC . Dan model yang paling teruk mungkin akan mempunyai satu titik operasi di sudut kiri bawah plot ROC di mana kadar positif palsu bersamaan dengan 1 dan kadar positif benar bersamaan dengan 0.
Model tekaan rawak mempunyai peluang 50% untuk meramalkan hasil dengan betul, jadi kadar positif palsu akan sentiasa sama dengan kadar positif sebenar. Inilah sebabnya mengapa terdapat garis pepenjuru dalam graf, yang mewakili kebarangkalian 50/50 untuk mengesan isyarat berbanding hingar.
Untuk menganalisis sepenuhnya lengkung ROC dan membandingkan prestasi model dengan beberapa model lain, anda sebenarnya perlu mengira kawasan di bawah lengkung (AUC), juga dalam kesusasteraan dipanggil statistik c. Kawasan di bawah lengkung (AUC) mempunyai nilai antara 0 dan 1 kerana lengkung diplot pada grid 1x1 dan selari dengan teori isyarat, ia adalah ukuran pengesanan isyarat.
Ini adalah statistik yang sangat berguna kerana ia memberi kita gambaran tentang sejauh mana model itu berpangkat berbanding pemerhatian benar dan salah. Ia sebenarnya adalah versi normal ujian jumlah pangkat Wilcoxon-Mann-Whitney, yang menguji hipotesis nol di mana dua sampel ukuran tersusun diambil daripada satu pengedaran.
Untuk memplot lengkung ROC dan mengira luas di bawah lengkung (AUC), anda memutuskan untuk menggunakan kaedah RocCurveDisplay SckitLearn dan membandingkan perceptron berbilang lapisan kepada model hutan rawak dalam percubaan untuk menyelesaikan tugas pengelasan yang sama.
import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score, RocCurveDisplay def plot_roc(model, test_features, test_targets): """ Plotting the ROC curve for a given Model and the ROC curve for a Random Forests Models """ # comparing the given model with a Random Forests model random_forests_model = RandomForestClassifier(random_state=42) random_forests_model.fit(train_features, train_targets) rfc_disp = RocCurveDisplay.from_estimator(random_forests_model, test_features, test_targets) model_disp = RocCurveDisplay.from_estimator(model, test_features, test_targets, ax=rfc_disp.ax_) model_disp.figure_.suptitle("ROC curve: Multilayer Perceptron vs Random Forests") plt.show() # using perceptron model as input plot_roc(ml_percetron_model, test_features, test_targets)
Atas ialah kandungan terperinci Apakah prestasi model python ROC dan AUC. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!