為什麼我的 F-Score 在 Python 中拋出'UndefinedMetricWarning”以及如何修復它?

Patricia Arquette
發布: 2024-11-16 14:37:03
原創
533 人瀏覽過

Why Does My F-Score Throw a

F-Score 警告:未定義的指標和缺失預測樣本

在分類任務中,通常使用F-score 評估模型性能。然而,當遇到「UndefinedMetricWarning: F-score is ill-define」錯誤時,表示由於沒有預測樣本,無法計算某些標籤的 F-score。

當標籤出現時,就會出現此問題真實標籤集(y_test)中存在的內容不會出現在預測標籤集(y_pred)中。因此,計算此類標籤的 F 分數會導致未定義的值。為了處理這種情況,scikit-learn 為這些標籤的 F 分數分配了 0.0 值。

觀察這種情況的一種方法是透過範例。考慮標籤「2」出現在 y_test 中但在 y_pred 中不存在的情況:

>>> set(y_test) - set(y_pred)
{2}
登入後複製

由於標籤「2」沒有預測樣本,因此該標籤的 F 分數被視為 0.0。由於計算包含 0 分,因此 scikit-learn 會顯示警告,以提醒未定義的指標。

此警告僅在第一次發生時才會引發。此行為是由於 Python 中警告的預設設定造成的,該設定可確保特定警告僅顯示一次。

要抑制此警告,可以使用warnings.filterwarnings('ignore') 停用它:

import warnings
warnings.filterwarnings('ignore')
登入後複製

或者,您可以明確指定感興趣的標籤,排除那些沒有預測樣本的標籤:

>>> metrics.f1_score(y_test, y_pred, average='weighted', labels=np.unique(y_pred))
0.91076923076923078
登入後複製

透過指定實際預測的標籤,可以避免警告。

以上是為什麼我的 F-Score 在 Python 中拋出'UndefinedMetricWarning”以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板