UnknownMetricWarning: 予測サンプルのないラベルの F スコアが定義されていません
scikit-learn では、f1_score メトリックによって F1 スコアが計算されます。分類モデルの精度を測定します。ただし、計算には、ターゲット変数 (y_test) 内の各ラベルの予測サンプルが存在する必要があります。特定のラベルが予測サンプル (y_pred) から欠落している場合、それらのラベルの F1 スコアは未定義になり、次のエラー メッセージが表示されます:
UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.
エラーが 1 回だけ発生する理由
エラー メッセージは未定義のメトリックを示唆していますが、実際にはデフォルトで 1 回だけ表示される警告です。これは、Python が警告をエラーとは異なる方法で扱うためです。デフォルトでは、ほとんどの環境では、根本的な状態が続いている場合でも、特定の警告は 1 回だけ表示されます。
UnknownMetricWarning の解決
警告を解決するには、次のことを確認することが重要です。 y_test のすべてのラベルは y_pred にも存在します。これは、ラベルのセットを比較することで判断できます。
set(y_test) - set(y_pred)
結果が空のセットの場合、すべてのラベルが予測されており、未定義の F1 スコアはありません。
繰り返しの警告を避ける
警告が発生するたびに警告を確認することが重要な場合は、warnings.filterwarnings() 関数を使用して警告処理動作を変更できます。
import warnings warnings.filterwarnings('always')
予測サンプルのないラベルを無視する
または、対象のラベルを指定して、特定のラベルを F1 スコア計算から除外することもできます。
metrics.f1_score(y_test, y_pred, average='weighted', labels=np.unique(y_pred))
これ予測されたサンプルに欠落しているラベルがスコア計算で考慮されなくなり、警告が表示されなくなります。
以上がF1 スコアを計算する際に「UnknownMetricWarning」が 1 回だけ表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。