多くの問題では、出力として確率の推定値が必要です。ロジスティック回帰は、確率を計算するための非常に効率的なメカニズムです。実用的には、返された確率は次の 2 つの方法で使用できます。
「そのまま」適用されます。たとえば、スパム予測モデルがメールを入力として受け取り、
0.932
の値を出力した場合、そのメールがスパムである確率は93.2%
です。バイナリ カテゴリ(
True
、False
、Spam
、Not Spam
など)に変換されます。
このモジュールでは、ロジスティック回帰モデルの出力をそのまま使用する方法に焦点を当てます。 分類モジュール: この出力をバイナリ カテゴリに変換します。
シグモイド関数
ロジスティック回帰モデルによって 確率を表し、常に 0 と 1 の間の値を出力します。そのまま ロジスティック関数と呼ばれる関数ファミリーがあります。 出力の特徴が同じです。標準のロジスティック関数(シグモイド関数とも呼ばれます。シグモイドは「S 字型」を意味します)の式は次のとおりです。
\[f(x) = \frac{1}{1 + e^{-x}}\]
図 1 は、対応するシグモイド関数のグラフを示しています。
入力 x
が増加すると、シグモイド関数の出力は 1
に近づきますが、決して 1
に達しません。同様に、入力が減少すると、シグモイド関数の出力は 0
に近づきますが、決して 0
に達することはありません。
シグモイド関数の背後にある数学について詳しくは、こちらをクリックしてください
下の表は、2 行ごとのシグモイド関数の出力 範囲の入力値(–7 ~ 7)です。負の入力値が減少するとシグモイドが 0 に近づく速度と、正の入力値が増加するとシグモイドが 1 に近づく速度に注目してください。
ただし、入力値がどれほど大きくても小さくても、出力は常に 0 より大きく 1 より小さくなります。
入力 | シグモイド出力 |
---|---|
-7 | 0.001 |
-6 | 0.002 |
-5 | 0.007 |
-4 | 0.018 |
-3 | 0.047 |
-2 | 0.119 |
-1 | 0.269 |
0 | 0.50 |
1 | 0.731 |
2 | 0.881 |
3 | 0.952 |
4 | 0.982 |
5 | 0.993 |
6 | 0.997 |
7 | 0.999 |
シグモイド関数を使用して線形出力を変換する
次の式はロジスティックの線形成分を表します 回帰モデル:
\[z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N\]
ここで
- z は線形方程式の出力であり、ログオッズとも呼ばれます。
- b はバイアスです。
- w 値はモデルの学習済みの重みです。
- x 値は特定の例の特徴値です。
ロジスティック回帰予測を取得するために、z 値がシグモイド関数に渡され、0~1 の値(確率)が生成されます。
\[y' = \frac{1}{1 + e^{-z}}\]
ここで
- y' はロジスティック回帰モデルの出力です。
- z は線形出力(上記の式で計算したもの)です。
ログオッズの詳細については、こちらをクリック
式 $z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N$, z 対数オッズと呼ばれるのは、 次のシグモイド関数($y$ はロジスティック関数の出力 確率を表す回帰モデル):
$$y = \frac{1}{1 + e^{-z}}$$
次に、z を解きます。
$$ z = \log\left(\frac{y}{1-y}\right) $$
z は、2 つの可能な結果(y と 1 - y)の確率の比のログとして定義されます。
図 2 は、これらの計算を使用して線形出力がロジスティック回帰出力に変換される方法を示しています。
図 2 では、一次方程式がシグモイド関数に入力されています。 直線を S 字型に曲げます一次方程式が 非常に大きい / 非常に小さい z 値を出力できますが、シグモイドの出力は 関数 y' は常に 0 と 1 の範囲内(両端を除く)です。たとえば、黄色の 左のグラフの正方形の z 値は -10 ですが、 右のグラフは、–10 を y' にマッピングしています。0.00004 になります。
演習: 理解度を確認する
3 つの特徴を持つロジスティック回帰モデルには、次のバイアスと重みがあります。
\[\begin{align} b &= 1 \\ w_1 &= 2 \\ w_2 &= -1 \\ w_3 &= 5 \end{align} \]
次の入力値があるとします。
\[\begin{align} x_1 &= 0 \\ x_2 &= 10 \\ x_3 &= 2 \end{align} \]
次の 2 つの質問に答えてください。
上記の 1 で計算したように、入力値のログオッズは 1 です。この値を z としてシグモイド関数に代入すると、次のようになります。
\(y = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-1}} = \frac{1}{1 + 0.367} = \frac{1}{1.367} = 0.731\)