不均衡なクラスでFスコアを平均化する最良の方法


7

不均衡なクラスのデータセットがあります。3つのクラスがデータの約60%を占めます。また、不均衡を引き起こすさまざまなテスト分割があります。たとえば:

トレインセット:label_1 ... label_n

テストセット:label_1、label_3、label_9

これは、テストセットにラベルが3つしかない場合でも、nラベルの1つとして予測される可能性があることを意味します。したがって、sklearn.metrics.precision_recall_fscore_supportを使用すると、ゼロが多い行列が得られます。

私の問題は、クラスごとの値ではなく、すべてのクラスにわたって平均Fスコアを取得する必要があることです。ただし、上記のsklearn関数から返された行列の平均を取るだけでは、非常に多くのゼロがあるため、常に非常に低い値になります。一方、潜在的な予測の総数はクラスの総数でなければならないため、ゼロ以外の値の平均を取ることも、私には意味がありません。

この場合、平均を取る良い方法はありますか?ミクロ、マクロ、加重平均のオプションを使用してみましたが、どちらが正しいかわかりません。

誰かこれを手伝ってくれませんか?

回答:


1

「どちらが正しいかわかりません」

ここに是非はありません。

分類子のパフォーマンスは、行列を使用して表すことができます。単一のメトリックを使用してパフォーマンスを表現しようとすると、一部の情報が失われます。

言い換えると、単一のメトリックに基づいて混同行列を復元することは不可能であるため、分類子のパフォーマンスを解釈するために単一のメトリックのみを検討すると、情報が失われます。

しかし、それでも...いくつかの選択肢の中でどの分類子がより優れているかを判断するには-単一のメトリックが必要です...

パフォーマンスを最もよく表す単一のメトリックはどれですか?それは主観的な質問です。これは、統計学者が創造的になる場所です。これが、非常に多くのメトリックが目的となっている理由です。

異なるメトリックは、混同行列から抽出できる異なるタイプの情報を「優先」します。どの情報を「最も重要」とみなすかを決めるのはあなた次第です。

考慮すべきいくつかの基準:

  • すべてのクラスは等しく重要ですか/すべてのインスタンスは等しく重要ですか?
  • 分類と誤分類も同様に「重要」ですか?
  • 偽陽性と偽陰性は等しく「重要」ですか?
  • パフォーマンスは絶対的なものですか、それともランダムな分類子に対するものですか?
  • メトリックはある意味で線形である必要がありますか?

ご回答有難うございます!重点を置くことができる特定の指標がないことを理解していますが、この場合、クラスの不均衡を考慮して、Fスコアを選択しました。ただし、私の質問は、クラスごとではなく、分類子全体のFスコアの平均表現を実際にどのように取得するのですか?スパース行列での平均化では非常に低い値が得られますが、ゼロ以外の値で平均化するだけでは正しくありません。本質的に、私の問題は、非ゼロの値がゼロの値よりも重み付けされるスパース行列の平均を取る最良の方法に減らすことができます
SanjanaS801

「しかし、単にゼロ以外の値を平均するだけでは適切ではありません」。繰り返しますが、正しいことも間違ったこともありません。ミクロ、マクロ、重み付け-すべて独自のセマンティクスがあります。平均をどのように表現しますか?決めるのはあなた次第です。ゼロ以外の値にさらに重みを付ける場合は、先に進んでください。
Lior Kogan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.