5

weightedsklearn.metrics.f1_scoreの平均について質問があります

sklearn.metrics.f1_score(y_true, y_pred, labels=None, pos_label=1, average='weighted', sample_weight=None)

Calculate metrics for each label, and find their average, weighted by support (the number of true instances for each label). This alters ‘macro’ to account for label imbalance; it can result in an F-score that is not between precision and recall.

まず、加重 F1 の使用を正当化する参考文献がある場合、私はただの好奇心です。その場合、加重 F1 を使用する必要があります。

次に、weighted-F1 は非推奨だと聞きましたが、本当ですか?

3 番目に、重み付けされた F1 が実際にどのように計算されているか、たとえば

{
    "0": {
        "TP": 2,
        "FP": 1,
        "FN": 0,
        "F1": 0.8
    },
    "1": {
        "TP": 0,
        "FP": 2,
        "FN": 2,
        "F1": -1
    },
    "2": {
        "TP": 1,
        "FP": 1,
        "FN": 2,
        "F1": 0.4
    }
}

上記の例の加重 ​​F1 の計算方法。(0.8*2/3 + 0.4*1/3)/3 のようなものになるはずですが、間違っていました。

4

1 に答える 1

10

まず、加重 F1 の使用を正当化する参考文献がある場合、私はただの好奇心です。その場合、加重 F1 を使用する必要があります。

参考文献はありませんが、すべてのクラスの精度/再現率を気にするマルチラベル分類に興味がある場合は、重み付けされた f1-score が適切です。陽性サンプルだけを気にするバイナリ分類がある場合、それはおそらく適切ではありません。

次に、weighted-F1 は非推奨だと聞きましたが、本当ですか?

いいえ、weighted-F1 自体は非推奨ではありません。v0.16 に戻って、関数インターフェイスの一部の側面のみが非推奨になり、以前はあいまいな状況でより明確にするためだけに廃止されました。(歴史的な議論は githubで参照するか、ソース コードをチェックアウトし、ページで「非推奨」を検索して詳細を確認してください。)

第 3 に、加重 F1 は実際にどのように計算されているのでしょうか。

のドキュメントからf1_score:

``'weighted'``:
  Calculate metrics for each label, and find their average, weighted
  by support (the number of true instances for each label). This
  alters 'macro' to account for label imbalance; it can result in an
  F-score that is not between precision and recall.

そのため、平均はサポートによって重み付けされます。これは、特定のラベルを持つサンプルの数です。上記のサンプル データにはサポートが含まれていないため、リストした情報から加重 f1 スコアを計算することはできません。

于 2015-10-25T13:56:32.557 に答える