ホームページ >バックエンド開発 >Python チュートリアル >Python で F スコアが「UnknownMetricWarning」をスローするのはなぜですか? それを修正するにはどうすればよいですか?

Python で F スコアが「UnknownMetricWarning」をスローするのはなぜですか? それを修正するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 14:37:03614ブラウズ

Why Does My F-Score Throw a

F スコアの警告: 未定義のメトリクスと予測サンプルの欠落

分類タスクのコンテキストでは、F スコア メトリクスが一般的に使用されますモデルのパフォーマンスを評価します。ただし、「UnknownMetricWarning: F スコアが正しく定義されていません」エラーが発生した場合は、予測サンプルがないため、特定のラベルの F スコアを計算できないことを示します。

この問題は、ラベルが指定されていない場合に発生します。真のラベル セット (y_test) に存在するラベルは、予測されたラベル セット (y_pred) には現れません。したがって、そのようなラベルの F スコアを計算すると、値が未定義になります。この状況に対処するために、scikit-learn はこれらのラベルの F スコアに 0.0 の値を割り当てます。

このシナリオを観察する 1 つの方法は、例を使用することです。ラベル '2' が y_test には存在するが y_pred には存在しない状況を考えてみましょう:

>>> set(y_test) - set(y_pred)
{2}

ラベル '2' には予測サンプルがないため、このラベルの F スコアは 0.0 とみなされます。計算にはスコア 0 が含まれるため、未定義のメトリックについて警告する警告が scikit-learn によって表示されます。

この警告は、初めて発生した場合にのみ発生します。この動作は、特定の警告が 1 回だけ表示されるようにする 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
実際に予測されたラベルを指定することで警告を回避できます。

以上がPython で F スコアが「UnknownMetricWarning」をスローするのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。