Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Saya Mendapat 'UndefinedMetricWarning' Apabila Mengira F-Score dalam Scikit-learn?

Mengapa Saya Mendapat 'UndefinedMetricWarning' Apabila Mengira F-Score dalam Scikit-learn?

Barbara Streisand
Barbara Streisandasal
2024-11-25 10:19:14653semak imbas

Why Am I Getting an

Menyelesaikan masalah "UndefinedMetricWarning" dalam Pengiraan F-Score

Metrik skor F Sklearn kadangkala boleh mencetuskan "UndefinedMetricWarning" apabila terdapat label dalam data kebenaran tanah (y_test) yang tidak diramalkan (y_pred). Ini berlaku kerana skor F tidak ditentukan untuk label tanpa sampel yang diramalkan. Dalam kes sedemikian, skor ditetapkan kepada 0.0.

Dalam kes anda, anda mungkin perasan bahawa ralat hanya muncul semasa pelaksanaan pertama dan bukan selepas itu. Ini kerana amaran hanya dipaparkan sekali secara lalai. Anda boleh mengubah suai tingkah laku ini dengan menetapkan fungsi warnings.filterwarnings() kepada 'sentiasa' untuk memaparkan amaran setiap kali.

Untuk mengelakkan amaran, anda mempunyai dua pilihan:

  1. Abaikan label tanpa ramalan: Tentukan label yang anda minati dengan menetapkan parameter label kepada nilai unik dalam y_pred. Ini akan mengecualikan label tanpa sampel yang diramalkan dan amaran akan hilang:
import numpy as np

metrics.f1_score(y_test, y_pred, average='weighted', labels=np.unique(y_pred))
  1. Kendalikan metrik yang tidak ditentukan secara eksplisit: Jika anda ingin mengendalikan metrik yang tidak ditentukan dalam adat cara, anda boleh menggunakan parameter error_score untuk menetapkan nilai tertentu (cth., -1, 0, atau NaN) kepada metrik yang tidak ditentukan.

Mengenai mesej ralat "ketepatan', 'diramalkan', purata, warn_for)" yang tertinggal, ia ialah pepijat dalam scikit-learn 0.18.1 yang telah diperbaiki dalam versi kemudian. Mesej ralat seharusnya tidak menjejaskan keputusan anda.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'UndefinedMetricWarning' Apabila Mengira F-Score dalam Scikit-learn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn