しきい値と混同行列

スパムメール検出用のロジスティック回帰モデルがあるとします。このモデルは、特定のメールがスパムである確率を表す 0 ~ 1 の値を予測します。予測値が 0.50 の場合、メールがスパムである確率は 50% です。予測値が 0.75 の場合、メールがスパムである確率は 75% です。

このモデルをメール アプリケーションにデプロイして、スパムを別のメールフォルダにフィルタリングしたいとします。ただし、そのためには、モデルの元の数値出力(0.75)を「スパム」または「スパムではない」の 2 つのカテゴリのいずれかに分類します。

この変換を行うには、分類しきい値と呼ばれるしきい値の確率を選択します。しきい値を超える確率の例は、正クラス(テスト対象のクラス、ここでは spam)に割り当てられます。確率が低い例は、負クラス(代替クラス、ここでは not spam)に割り当てられます。

分類のしきい値について詳しくは、こちらをクリック

予測スコアが分類しきい値と等しい場合(分類しきい値が 0.5 の場合にスコアが 0.5 など)はどうなりますか?このケースの処理は、分類モデルに選択した特定の実装によって異なります。Keras ライブラリは、スコアとしきい値が等しい場合に負クラスを予測しますが、他のツールやフレームワークではこのケースが異なる方法で処理される場合があります。

モデルが 1 通のメールに対してスコア 0.99 を割り当て、そのメールがスパムである確率が 99% であると予測し、別のメールに対してスコア 0.51 を割り当て、そのメールがスパムである確率が 51% であると予測したとします。分類しきい値を 0.5 に設定すると、モデルは両方のメールをスパムとして分類します。しきい値を 0.95 に設定すると、スコアが 0.99 のメールのみが迷惑メールとして分類されます。

0.5 は直感的なしきい値のように思えますが、あるタイプの誤分類のコストが他よりも大きい場合や、クラスが不均衡な場合は、適切ではありません。メールの 0.01% のみが迷惑メールである場合や、迷惑メールを受信トレイに入れるよりも正当なメールを誤って分類するほうが悪い場合、モデルが迷惑メールである可能性を 50% 以上と判断したすべてのメールに迷惑メールのラベルを付けると、望ましくない結果が得られます。

混同行列

確率スコアは現実、つまりグラウンド トゥルースではありません。バイナリ分類システムの出力には、次の 4 つの結果が考えられます。スパム分類子の例で、正解を列に、モデルの予測を行に配置すると、混同行列と呼ばれる次の表が得られます。

実際の陽性 実際の否定
予測陽性 真陽性(TP): 迷惑メールが迷惑メールとして正しく分類された場合。迷惑メールフォルダに自動的に送信されるスパム メールです。 偽陽性(FP): 迷惑メールではないメールが迷惑メールとして誤って分類される。これらは、迷惑メールフォルダに振り分けられる正当なメールです。
ネガティブと予測 偽陰性(FN): 迷惑メールが迷惑メールではないと誤って分類されたメール。スパム フィルタに引っかからず、受信トレイに届く迷惑メールです。 真陰性(TN): 迷惑メールではないメールが、迷惑メールではないと正しく分類されたもの。これらは、受信トレイに直接送信される正当なメールです。

各行の合計は、有効性に関係なく、すべての予測陽性(TP + FP)とすべての予測陰性(FN + TN)を示します。一方、各列の合計には、モデルの分類に関係なく、すべての真陽性(TP + FN)とすべての真陰性(FP + TN)が含まれます。

実際の正の合計が実際の負の合計に近づかない場合は、データセットはアンバランスです。アンバランスなデータセットの例としては、雲の写真が数千枚あるセットで、興味のある珍しい雲の種類(巻雲など)が数回しか登場しない場合があります。

しきい値が真陽性、偽陽性、偽陰性に及ぼす影響

通常、しきい値が異なると、真陽性と偽陽性、真陰性と偽陰性の数が異なります。次の動画で、その理由を説明します。

しきい値を自分で変更してみてください。

このウィジェットには、次の 3 つのトイデータセットが含まれています。

  • 分離: 通常、正例と負例は明確に区別され、ほとんどの正例のスコアは負例よりも高くなります。
  • 分離なし: 多くのポジティブ サンプルのスコアがネガティブ サンプルのスコアよりも低く、多くのネガティブ サンプルのスコアがポジティブ サンプルのスコアよりも高い。
  • 不均衡: 正のクラスのサンプルが少数しか含まれていない。

理解度を確認する

1. フィッシングまたはマルウェアの分類モデルを想像してみてください。フィッシング サイトとマルウェア サイトはラベル 1(true)のクラスに、無害なサイトはラベル 0(false)のクラスに分類されます。このモデルは、正当なウェブサイトを誤ってマルウェアとして分類します。これを何と呼びますか。
誤検知
否定的な例(正当なサイト)が、肯定的な例(マルウェア サイト)として誤って分類されている。
真陽性
真陽性とは、マルウェアとして正しく分類されたマルウェア サイトです。
偽陰性
偽陰性とは、マルウェア サイトが正当なサイトとして誤って分類されることです。
真陰性
真陰性とは、正当なサイトが正当なサイトとして正しく分類されることです。
2. 一般に、分類しきい値を上げると、偽陽性の数はどうなりますか?真陽性はどうでしょうか。上記のスライダーで試してみてください。
真陽性と偽陽性の両方が減少します。
しきい値を上げると、モデルは真陽性と偽陽性の両方で、全体的に陽性の予測を減らす傾向があります。しきい値が .9999 の迷惑メール分類システムは、分類の確率が 99.99% 以上であると判断した場合にのみ、メールに迷惑メールのラベルを付けます。つまり、正当なメールに誤ってラベルを付ける可能性は非常に低くなりますが、実際の迷惑メールを見逃す可能性もあります。
真陽性と偽陽性の両方が増加します。
上部のスライダーを使用して、しきい値を 0.1 に設定してから、0.9 にドラッグします。偽陽性と真陽性の数はどうなりますか?
真陽性が向上します。誤検出が減少します。
上部のスライダーを使用して、しきい値を 0.1 に設定してから、0.9 にドラッグします。偽陽性と真陽性の数はどうなりますか?
3. 一般に、分類しきい値を上げると、誤判定の数はどうなりますか?真陰性はどうですか?上記のスライダーで試してみてください。
真陰性と偽陰性の両方が増加します。
しきい値を上げると、モデルは真と偽の両方で、全体的に陰性をより多く予測する傾向があります。しきい値が非常に高いと、迷惑メールと非迷惑メールのほぼすべてのメールが非迷惑メールとして分類されます。
真陰性と偽陰性の両方が減少します。
上部のスライダーを使用して、しきい値を 0.1 に設定してから、0.9 にドラッグします。偽陰性と真陰性の数はどうなりますか?
真陰性が増加します。偽陰性が減少します。
上部のスライダーを使用して、しきい値を 0.1 に設定してから、0.9 までドラッグします。偽陰性と真陰性の数はどうなりますか?