UndefinedMetricWarning: F-score Undefined for Labels with No Predicted Samples
Dalam scikit-learn, metrik f1_score mengira skor F1, yang mengukur ketepatan model klasifikasi. Walau bagaimanapun, pengiraan memerlukan kehadiran sampel yang diramalkan untuk setiap label dalam pembolehubah sasaran (y_test). Jika label tertentu tiada daripada sampel yang diramalkan (y_pred), skor F1 untuk label tersebut menjadi tidak ditentukan, mengakibatkan mesej ralat:
UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.
Mengapa Ralat Berlaku Sekali sahaja
Walaupun mesej ralat mencadangkan metrik yang tidak ditentukan, ia sebenarnya amaran yang muncul sekali sahaja secara lalai. Ini kerana Python merawat amaran secara berbeza daripada ralat. Secara lalai, kebanyakan persekitaran memaparkan amaran khusus sekali sahaja, walaupun keadaan asas berterusan.
Menyelesaikan UndefinedMetricWarning
Untuk menyelesaikan amaran, adalah penting untuk memastikan bahawa semua label dalam y_test juga terdapat dalam y_pred. Ini boleh ditentukan dengan membandingkan set label:
set(y_test) - set(y_pred)
Jika keputusannya ialah set kosong, semua label telah diramalkan dan tidak akan ada markah F1 yang tidak ditentukan.
Mengelakkan Amaran Berulang
Jika penting untuk melihat amaran setiap kali ia berlaku, fungsi warnings.filterwarnings() boleh digunakan untuk mengubah suai tingkah laku pengendalian amaran:
import warnings warnings.filterwarnings('always')
Mengabaikan Label Tanpa Sampel Diramalkan
Sebagai alternatif, label tertentu boleh dikecualikan daripada pengiraan skor F1 dengan menyatakan label bagi minat:
metrics.f1_score(y_test, y_pred, average='weighted', labels=np.unique(y_pred))
Ini memastikan bahawa label yang hilang daripada sampel yang diramalkan tidak dipertimbangkan dalam pengiraan skor, menghapuskan amaran.
Atas ialah kandungan terperinci Mengapakah `UndefinedMetricWarning` Muncul Sekali Sahaja Apabila Mengira Markah F1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!