ロジスティック関数(またはシグモイド関数)は以下の式で表される:
ロジスティック関数に入力の線形結合を代入したものとして表される:
-
$y$ : モデルの出力 -
$X_1, X_2 ...$ : 入力変数 -
$b_0, b_1, ...$ : 学習によって調整するモデルのパラメータ.
ロジスティック回帰はあるデータがデフォルトクラス(例: 最初のクラス)に分類される確率をモデル化する.
例えば、人の身長のデータをもとに男性か女性かの性別をモデル化する場合、最初のクラスを男性とすることができる。この場合のロジスティック回帰モデルは、ある人物の身長が与えられたとき、その人が男性である確率として次のように書ける:
入力$X$がデフォルトクラス$Y=1$に所属する確率として次のようにも表せる:
分類アルゴリズムとして利用するにはこの確率をバイナリ化(0 or 1)する必要がある.
ロジスティック回帰は線形法だが, 予測は以下のような非線形のロジスティック関数で表される. つまり、線形回帰のように入力の一次結合ではもはや表すことができない.
これは以下のように書ける:
左辺に現れる比率
対数変換されたオッズは対数オッズまたはプロビット(Probit)と呼ばれる.
このことより、モデルは入力の線形結合と関係していることがわかる. ただし、入力の線形結合はデフォルトクラスの対数オッズに等しい.
トレーニングデータから 最尤推定(maximum likelihood estimation) を使って学習する.
実際の計算アルゴリズムは準ニュートン法などを用いている. 勾配降下法を用いて自分で実装することも可能.
身長から性別を推定する例で、身長150cmの人物が男性か女性かをロジスティック回帰で推定してみる. トレーニングデータを使って学習した結果
ロジスティック関数の値を計算すると、 $$y=\frac{\exp(-100+0.6150)}{1+\exp(-100+0.6150)} = 0.0000453978687$$
以下の条件式によってクラスを2値分類する:
$P(男性)<0.5の場合, Y=0$ $P(男性)\ge0.5の場合, Y=1$
この結果, この人物は「女性(
ロジスティック回帰は二値判別問題に対して考え出された手法だが、後述の手法によって多クラス分類にも拡張して適用することができる.
数式を読むには以下の chrome extension をインストールしてください:
https://chrome.google.com/webstore/detail/mathjax-plugin-for-github/ioemnmodlmafdkllaclgeombjnmnbima