ロジスティック回帰は、2値分類のためのモデルです。入力特徴量を線形スコアにまとめ、そのスコアをシグモイド関数に通して、 から の間の値を出力します。この値は、学習済みモデルのもとで正例クラスの推定確率として解釈されます。
名前に「回帰」とありますが、ロジスティック回帰は通常、合格/不合格、スパム/非スパム、延滞/非延滞のような2つのクラスを判定するために使われます。「回帰」という言葉は、連続値を予測するという意味ではなく、モデル内部の線形な式を指しています。
ロジスティック回帰の式をひと目で確認
2値ロジスティック回帰では、次を使います。
シグモイド関数は
です。線形部分 は任意の実数を取れます。シグモイド関数はその値を に押し込むので、出力を確率の推定値として使えます。
シグモイド関数が重要な理由
生の線形スコア をそのまま確率として使うと、 や のようなありえない値が出てしまいます。シグモイド関数はそれを修正し、大きく負のスコアを に近く、大きく正のスコアを に近く、 付近のスコアを に近く写します。
すると、実用的には次のように読めます。
- が大きく負なら、モデルはクラス に傾いている
- が に近いなら、モデルは不確かである
- が大きく正なら、モデルはクラス に傾いている
この曲線は 付近で最も急になります。つまり、スコアの小さな変化でも、確率が 付近なら大きく変わりえますが、確率がすでに や に近いときは変化がずっと小さくなります。
ロジスティック回帰の計算例
1つの特徴量 を使うモデルがあり、
だとします。 をテストの点数、 を「合格」と考えてよいでしょう。ここでの係数は、仕組みを示すための単なる例です。
のとき、
したがって、予測確率は
です。
のときは、
となり、
です。
つまり、同じモデルでも では合格確率は約 、 では約 になります。スコアは 増えましたが、シグモイド関数が結果を確率に曲げるため、最終出力は から の間に収まります。
ここでしきい値を にすると、最初のケースはクラス 、2つ目のケースはクラス に分類されます。この最後のステップはしきい値に依存します。確率の推定値そのものは依存しません。
便利な近道を1つ挙げると、しきい値が のとき、クラスが切り替わるのはちょうど のときです。なぜなら だからです。
ロジスティック回帰が分類器になる仕組み
モデルの出力は確率の推定値です。分類のルールはその後で追加されます。
たとえば、しきい値が なら、
- ならクラス を予測する
- ならクラス を予測する
となります。
ただし、 が常に正しいしきい値とは限りません。偽陽性と偽陰性のコストが異なる場合や、クラスの偏りが大きい場合には、別のしきい値のほうがうまくいくことがあります。
係数の意味
係数の符号は、線形スコア に対する影響の向きを表します。
- なら、 が増えると は大きくなり、 は増える傾向がある
- なら、 が増えると は小さくなり、 は減る傾向がある
この部分は比較的わかりやすいです。少し注意が必要なのは、シグモイド曲線は直線ではないため、確率は特徴量に対して線形には変化しないという点です。
標準的なロジスティック回帰では、線形モデルは対数オッズの尺度で表されます。
これは、他の特徴量を固定したとき、ある特徴量が1単位増えるごとに対数オッズが線形に変化することを意味します。これは、確率が一定量だけ変わると言うよりも、より正確な説明です。
ロジスティック回帰でよくある誤解
出力を確定したクラスだと考える
のような予測は、その事象が必ず起こることを意味しません。その入力に対して、モデルが正例クラスに約 の推定確率を与えているという意味です。
しきい値は必ず だと思う
はよく使われますが、選択肢の1つであって絶対のルールではありません。最適なしきい値は用途によって変わります。
確率が線形に変わると思う
スコア は入力に対して線形ですが、確率はそうではありません。特徴量が1単位変化したときの影響は、 付近と 付近で異なることがあります。
拡張しない限り2値モデルだという点を忘れる
基本的なロジスティック回帰が扱うのは2クラスです。多クラス版もありますが、それは別の書き方をした同じ2値設定ではなく、拡張版です。
ロジスティック回帰が使われる場面
ロジスティック回帰は、目的変数が yes/no 型のときによく使われます。たとえば、スパム検出、病気の有無、顧客離反、ローン延滞、合格/不合格の判定などです。
この手法が今でも広く使われるのは、シンプルで高速であり、ある程度解釈しやすいからです。特に、ベースラインとなる分類器が欲しいとき、データセットがそれほど大きくないとき、あるいは単なるラベルではなく推定確率が必要なときに役立ちます。
シンプルなイメージのしかた
ロジスティック回帰は、2段階の機械だと考えるとわかりやすいです。
- 線形スコアで証拠を足し合わせる。
- そのスコアをシグモイド関数で確率に変換する。
このイメージだけでも、多くの入門的な例を理解できますし、ロジスティック回帰が線形モデルと分類タスクの中間に位置する理由も見えてきます。
似たロジスティック回帰の問題を試してみよう
たとえば、
のような単純なスコアを選びます。、、 などいくつかの値について を計算してみてください。線形スコアは一定のペースで変化する一方、確率はS字カーブに沿って曲がることがわかります。次に別のしきい値も試して、予測クラスがいつ変わるかを確認してみましょう。