ITエンジニア ノイのブログ

ITエンジニアのノイです。 YouTubeで ITエンジニアのお勉強という学習用の動画を公開しています。チャンネル登録お願いします!https://m.youtube.com/channel/UCBKfJIMVWXd3ReG_FDh31Aw/playlists

PrecisionとRecallの使い分け

こんにちは!ノイです。 機械学習でモデルを評価しなければならないことがあるかと思います。

PrecisionとRecall

機械学習モデルのパフォーマンスを評価するための重要な指標です。

Precision

Precision(適合率)は、モデルが予測した陽性と判断されたサンプルのうち、実際に陽性であったサンプルの割合を示します。 つまり、Precisionは、モデルが陽性と判断したものの中で実際に陽性であったものの割合を表しています。低い場合は誤検知が多いことになります。

Recall

Recall(再現率)は、実際に陽性であるサンプルのうち、モデルが正しく陽性と予測できたサンプルの割合を示します。つまり、Recallは、実際に陽性であるものの中でモデルが陽性と判断したものの割合を表しています。(実際のタグに対して正しくタグと予測できた意味。)低い場合は見逃しが多いことになります。

True Positives

True Positivesは、正しく陽性と予測されたサンプルの数を表します。False Positivesは、陽性と予測されたが実際は陰性であったサンプルの数を表します。False Negativesは、陰性と予測されたが実際は陽性であったサンプルの数を表します。 PrecisionとRecallは、両方とも重要な指標であり、モデルのパフォーマンスを総合的に評価するためには両方を考慮する必要があります。 例えば、Precisionが高くてもRecall7が低い場合、モデルは陽性と判断する基準が高く設定されており、本当の陽性が見逃される可能性があります。 一方で、Recallが高くてもPrecisionが低い場合、モデルは陽性と判断する基準が低く設定されており、誤検知が多くなる可能性があります。

Precisionを重視する場合

  1. 偽陽性が重大な影響を与える場合:偽陽性が許容できない場合、すなわち陰性であるべきサンプルを誤って陽性と判断してしまうことが深刻な結果を招く場合、Precisionを重視する必要があります。例えば、発信者がテロリストであると誤って判断された場合(誤って死刑にされたなど)などです。

  2. サンプル数が大きい場合:サンプル数が非常に多い場合、Recallを高めようとすると、誤った陽性の数も多くなるため、Precisionを重視することが適切である場合があります。例えば、大量のメールからスパムメールを判別する場合です。

  3. 精度を高めることが目的の場合:モデルの精度を向上させることが目的である場合、Precisionを重視することが有効な場合があります。例えば、検索エンジンの検索結果において、精度の高い結果を表示することが目的である場合です。

Recallを重視する場合

  1. 偽陰性が重大な影響を与える場合:偽陰性が許容できない場合、すなわち陽性であるべきサンプルを誤って陰性と判断してしまうことが深刻な結果を招く場合、Recallを重視する必要があります。例えば、病気の検査で病気を持っている人を見逃すことが命にかかわる場合です。

  2. 陽性サンプルの数が少ない場合:陽性サンプルが少ない場合、Recallを高めないと陽性のサンプルを見逃してしまうことがあります。例えば、犯罪の予防において、犯罪者を見つけるためにはRecallを高める必要があります。

  3. データの偏りがある場合:データの偏りがある場合、Recallを高めないと、少数派のサンプルを見つけることができず、重要な情報が見逃される可能性があります。例えば、信用情報評価において、低所得者の信用度を判断するためにはRecallを重視する必要があります。 ただし、Recallを重視する場合には、偽陽性が増加することになるため、モデルの目的や応用に応じて適切にバランスを取る必要があります。

F値

F値は、PrecisionとRecallの調和平均であり、モデルのパフォーマンスを総合的に評価する指標として用いられます。

  1. モデルの総合的なパフォーマンスを比較する場合:PrecisionとRecallを単独で見ると、一方が高くてももう一方が低い場合があります。F値は、PrecisionとRecalのバランスを考慮した総合的なパフォーマンスを示すため、モデルの総合的なパフォーマンスを比較するために使用されます。

  2. クラスのバランスが偏っている場合:クラスのバランスが偏っている場合、Accuracyが高くても、少数派のクラスを正しく分類できていない場合があります。このような場合には、F値を用いることで、少数派のクラスについても適切なパフォーマンス評価ができます。

  3. モデルのチューニングを行う場合:モデルのパラメータをチューニングする際に、F値を最大化するようにモデルを調整することができます。F値は、PrecisionとRecallのバランスを考慮しているため、モデルのパラメータを調整する際にバランスを考慮することができます。

ただし、F値は、PrecisionとRecallが均衡している場合に最も有効であり、Precisionを重視するかRecallを重視するかに応じて、別の指標を使用する必要がある場合もあります。

※この記事の一部情報にはChatGPTを用いています。

youtu.be