ホームページ > バックエンド開発 > Python チュートリアル > F1 スコアを計算する際に「UnknownMetricWarning」が 1 回だけ表示されるのはなぜですか?

F1 スコアを計算する際に「UnknownMetricWarning」が 1 回だけ表示されるのはなぜですか?

Linda Hamilton
リリース: 2024-11-15 19:41:02
オリジナル
396 人が閲覧しました

Why Does `UndefinedMetricWarning` Appear Only Once When Calculating F1 Score?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート