目次
はじめに
「ロジスティック回帰で予測した確率を、何%から陽性・陰性に分ければいいの?」
「しきい値を0.5に設定しているけれど、本当にこの基準でよいの?」と迷っていませんか。
ロジスティック回帰では、モデルが「陽性になる確率」を0〜1の数値で出力しますが、そのままでは陽性・陰性の2分類にならないため、どの確率を境目にするかを決める必要があります。
この記事では、しきい値の基本的な決め方から、分類結果を評価する指標まで、具体的な数値を使って順を追って説明していきます。
ロジスティック回帰のしきい値とは?
ロジスティック回帰では、分析結果として算出された予測確率を、そのままではなく「0」または「1」のクラスに分類して判断することがあります。
ここでは、予測確率を0・1に分類する仕組みと、一般的に使われるしきい値0.5が必ずしも適切とは限らない理由を説明します。
予測確率を0・1のクラスに分ける基準
ロジスティック回帰では、「1になる確率」を0〜1の範囲で予測し、設定したしきい値を基準に0・1へ分類します。
たとえば、しきい値が0.5の場合、予測確率が0.72なら「1」、0.35なら「0」と判断します。
しきい値0.5が常に最適とは限らない
しきい値には0.5がよく使われますが、目的によって適した値は変わります。
「1」の見逃しを減らしたい場合はしきい値を下げ、誤って「1」と判定するケースを減らしたい場合は、しきい値を上げる方法があります。
ロジスティック回帰のしきい値を変えると分類結果はどう変わる?
ロジスティック回帰では、しきい値をどこに設定するかによって、陽性と判定される件数や再現率、偽陽性・偽陰性の件数が変わります。
ここでは、しきい値を変えたときに分類結果がどのように変化するのか、再現率や偽陽性・偽陰性との関係を順に説明します。
しきい値を下げると陽性判定と再現率が増えやすい
しきい値を0.5から0.3に下げると、「1」と判定されるデータが増えるため、実際の1を見つける再現率も上がりやすくなります。
ただし、実際には0のデータまで1と判定し、偽陽性が増える場合があります。
しきい値を上げると偽陽性を減らしやすい
しきい値を0.5から0.7に上げると、「1」と判定されるデータが減るため、偽陽性を抑えやすくなります。
ただし、実際には1のデータを0と判定するケースも増え、偽陰性が増える場合があります。
偽陽性と偽陰性にはトレードオフがある
しきい値を下げると偽陰性は減りやすい一方で、偽陽性は増えやすくなります。
反対に、しきい値を上げると偽陽性は減りやすく、偽陰性は増えやすいため、どちらを重視するかに合わせて調整することが大切です。
ロジスティック回帰のしきい値は何を基準に決める?
ロジスティック回帰のしきい値は、単に0.5に設定するのではなく、分類で何を優先するかによって決める必要があります。
ここでは、再現率・適合率・特異度・F1スコアに加えて、誤分類による損失を考慮したしきい値の決め方を説明します。
見逃しを減らしたい場合は再現率を重視する
陽性の見逃しを減らしたい場合は、実際に1であるデータをどれだけ1と判定できたかを示す再現率を重視します。
しきい値を下げると再現率は上がりやすいため、複数のしきい値を比較し、必要な再現率を満たす値を選びます。
誤検知を減らしたい場合は適合率や特異度を重視する
誤って1と判定するケースを減らしたい場合は、適合率や特異度を確認します。
しきい値を上げると偽陽性を減らしやすくなるため、複数の値を比較しながら、許容できる誤検知の範囲に合わせて選びます。
両者のバランスを取りたい場合はF1スコアを確認する
見逃しと誤検知のバランスを取りたい場合は、再現率と適合率を組み合わせたF1スコアを確認します。
複数のしきい値でF1スコアを計算し、その値が高くなるしきい値を候補にすると選びやすくなります。
誤分類による損失が異なる場合はコストを基準にする
偽陽性と偽陰性による損失が異なる場合は、それぞれにコストを設定してしきい値を選びます。
たとえば、偽陰性を10、偽陽性を2として各件数から合計コストを求め、複数のしきい値の中から損失が小さくなる値を選びます。
評価指標を使ってしきい値の候補を決める方法
ロジスティック回帰のしきい値を決めるときは、複数のしきい値で分類した結果を比較し、目的に合う値を選ぶ必要があります。
ここでは、評価指標を使ってしきい値の候補を絞り込む方法を順に説明します。
混同行列でしきい値ごとの分類結果を確認する
混同行列では、しきい値ごとに真陽性・真陰性・偽陽性・偽陰性の件数を確認できます。
たとえば、しきい値を0.3、0.5、0.7と変えて比較すると、どのように分類結果が変わるのかを具体的に把握できます。
ROC曲線で感度と特異度のバランスを確認する
ROC曲線では、しきい値を変えたときの感度と偽陽性率の関係を確認できます。
陽性の見逃しを減らしながら、偽陽性をどの程度抑えられるかを比較したいときに役立ちます。
Youden Indexを使ってしきい値の候補を選ぶ
Youden Indexは「感度+特異度−1」で求め、感度と特異度のバランスからしきい値を選ぶ方法です。
複数のしきい値で計算し、Youden Indexが最も大きくなる値を候補として選びます。
F1スコアを使って適合率と再現率のバランスを取る
F1スコアは、適合率と再現率のバランスを1つの値で確認できる指標です。
複数のしきい値でF1スコアを比較し、両方をバランスよく重視したい場合は、値が高くなるしきい値を候補にします。
モデル評価としきい値の決定は分けて考える
ロジスティック回帰では、モデルそのものの識別性能を評価することと、実際の分類に使うしきい値を決めることは分けて考える必要があります。
ここでは、ROC-AUCが評価する内容としきい値との違いを確認し、最終的なしきい値を利用目的や誤分類コストから判断する考え方を説明します。
ROC-AUCはモデルの識別性能を評価する指標
ROC-AUCは、さまざまなしきい値での結果をもとに、陽性と陰性をどの程度区別できるかを評価する指標です。
AUCが1に近いほど識別性能が高く、0.5に近い場合はランダムな判定と同程度と考えます。
AUCが高くても運用に適したしきい値とは限らない
AUCが高いモデルでも、特定のしきい値で見逃しや誤検知が多くなる場合があります。
AUCはモデル全体の識別性能を示す指標なので、実際に使うしきい値は分類結果を確認して別に決める必要があります。
最終的なしきい値は利用目的と誤分類コストから判断する
最終的なしきい値は、見逃しと誤検知のどちらを重く扱うかを考えて選びます。
それぞれの誤分類による損失が異なる場合は、しきい値ごとの件数とコストを比較し、実際の利用目的に合った値を選ぶとよいでしょう。
ロジスティック回帰のしきい値を決めるときの注意点
ロジスティック回帰のしきい値は、評価に使うデータや正解率だけを見て決めると、実際の運用で適切に分類できない場合があります。
ここでは、しきい値を決める際に避けたい判断方法と、運用中に見直す必要があるケースを説明します。
テストデータに合わせてしきい値を最適化しない
テストデータを使って最もAccuracyが高くなるしきい値を選ぶと、未知のデータに対する性能を正しく評価しにくくなります。
しきい値は学習データや検証データで調整し、最後にテストデータで性能を確認しましょう。
クラスが不均衡な場合はAccuracyだけで判断しない
陽性と陰性の数に偏りがある場合は、Accuracyだけで判断しないことが大切です。
たとえば、陽性10件・陰性90件ですべてを陰性と判定してもAccuracyは90%になるため、再現率や適合率、特異度などもあわせて確認します。
運用条件やデータの傾向が変わったらしきい値を見直す
運用後に陽性と陰性の割合や予測確率の傾向が変わると、同じしきい値でも分類結果が変わることがあります。
再現率や適合率、偽陽性・偽陰性などを定期的に確認し、許容できる範囲から外れた場合はしきい値を見直しましょう。
まとめ
ロジスティック回帰のしきい値は、予測確率を0と1に分ける基準であり、必ずしも0.5が最適とは限りません。
しきい値を下げると陽性を見逃しにくくなる一方で偽陽性が増えやすく、上げると偽陽性を抑えやすい反面、見逃しが増える可能性があります。
しきい値を選ぶときは、再現率や適合率、F1スコアなどを比較しながら、見逃しと誤検知のどちらを重視するのかを考えることが大切です。
まずは利用目的を整理し、実際の分類結果や誤分類による影響を確認しながら、自分の目的に合ったしきい値を検討してみましょう。