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中文網其他相關文章!