分類: 予測バイアス

ロジスティック回帰予測は偏りがないようにしてください。これは次のことを意味します。

"予測の平均" ≈ 「観測値の平均」

予測バイアスは、これら 2 つの平均値の差を表す数量です。これは次のことを意味します。

$$\text{prediction bias} = \text{average of predictions} - \text{average of labels in data set}$$

重大なゼロ以外の予測バイアスは、モデルにバグがあることを示します。これは、ポジティブ ラベルが発生する頻度がモデルで間違っていることを示します。

たとえば、平均して、すべてのメールの 1% が迷惑メールであることがわかっています。 特定のメールについて何も知らない場合は、1% が迷惑メールである可能性が高いと予測してください。同様に、迷惑メールモデルでも、迷惑メールの確率は平均で 1% と予測されます。(つまり、個々のメールにつき迷惑メールと予測される可能性を平均すると、1% になります)。代わりに、モデルの平均予測がスパムである可能性が 20% であれば、予測バイアスが発生していると結論付けられます。

予測バイアスの根本原因は次のとおりです。

  • 機能セットが不完全
  • ノイズの多いデータセット
  • バグが多いパイプライン
  • 偏見のあるトレーニング サンプル
  • 強すぎる正則化

学習済みモデルの後処理、つまり、予測バイアスを低減するためにモデルの出力を調整する調整レイヤを追加することで、予測バイアスを修正したくなるかもしれません。たとえば、モデルのバイアスが +3% の場合は、平均予測を 3% 引き下げる調整レイヤを追加できます。ただし、次の理由により、調整レイヤの追加はおすすめしません。

  • 原因ではなく症状を修正する。
  • より不安定なシステムを構築したため、常に最新の状態を維持する必要があります。

可能であれば、調整レイヤを回避します。調整レイヤを使用するプロジェクトは、調整レイヤを使用してそのモデルのすべての問題を修正します。最終的に、調整レイヤの保守は悪夢となる可能性があります。

バケットと予測のバイアス

ロジスティック回帰では 0 ~ 1 のが予測されます。ただし、ラベル付けされたすべての例は、正確に 0(「スパムではない」などの意味)または正確に 1(「スパム」など)のいずれかになります。したがって、予測バイアスを調査する場合、1 つの例だけに基づいて予測バイアスを正確に判断することはできません。例の「バケット」で予測バイアスを調べる必要があります。つまり、ロジスティック回帰の予測バイアスは、予測値(0.392 など)と観測値(0.394 など)を比較するのに十分なサンプルをグループ化した場合にのみ意味を持ちます。

バケットは、次の方法で作成できます。

  • ターゲットの予測を直線的に分類します。
  • 分位値の形成。

特定のモデルによる次の調整プロットについて考えてみます。各ドットは、1,000 個の値のバケットを表します。軸には次の意味があります。

  • X 軸は、モデルがそのバケットに予測した値の平均を表します。
  • Y 軸は、そのバケットのデータセット内の実際の平均値を表します。

どちらの軸も対数目盛です。

X 軸は予測、Y 軸はラベルです。予測の中程度と高い値の場合、予測バイアスはごくわずかです。予測の値が低い場合、予測バイアスが比較的高くなります。

図 8. 予測バイアス曲線(対数目盛り)

モデルの一部に対してのみ予測が非常に悪いのはなぜですか。いくつかの可能性が考えられます。

  • トレーニング セットがデータ空間の特定のサブセットを適切に表していません。
  • データセットのサブセットには、他よりもノイズが多いものもあります。
  • モデルが過度に正則化されています。(ラムダの値を小さくすることを検討してください)。