ロジスティック回帰
ロジスティック回帰
scikit-learnではsklearn.linear_model.LogisticRegression
たくさんある線形モデルのひとつ
線形モデル:説明変数の線形結合をもとに目的変数を予測するモデルの総称
機械学習以前から知られるモデル
ロジスティック回帰は分類のモデル
「回帰」とあるが、「確率の回帰」のようなイメージで、分類問題に用いられる
線形分離可能な問題には非常に有効で、実装しやすく理解しやすいため、実応用されることも多い
ロジスティック回帰のイメージ
出力(目的変数)は、$ y=0か$ y=1のいずれかを取るものとする(0, 1の2クラス)
たとえば以下のように、入力$ xに対して、$ y=0か$ y=1が対応する
https://gyazo.com/38103bcb62deded168d76d5e8b054065
この例だと、$ xがある程度大きい場合は$ y = 1となる確率が高く、$ xが小さいと$ y = 0となる確率が高いことがわかる
次の関数$ \phi(z)により、データ点が特定のクラスに属する確率を予測する
$ \phi(z) = \frac{1}{1 + \exp(-z)} (シグモイド関数とよばれる)
ここで、説明変数が$ m次元の場合、$ z = \bold w^T \bold x = w_0 + w_1 x_1 + \dots + w_m x_mとする(つまり説明変数の線形結合)
上のように$ m = 1(1次元)の場合だと、中学校でやった$ y = a x + bと同じこと(つまり直線)
2次元だと平面、3次元以上だと超平面になる
ちなみにシグモイド関数$ \phi(z)はこのような形をしている(シグモイド(sigmoid)とは「S字状の」という意味)
https://gyazo.com/7149008364b5db775535014740957d3d
$ z = \bold w^T \bold x = w_0 + w_1 x_1 + \dots + w_m x_mのパラメータ$ w_0, w_1, \dots, w_mをうまく決めると、下図のように、$ \phi(z)をデータにあわせることができる
https://gyazo.com/172ce53f422988b4d80d7912de4819a3
これは、以下のように、$ w_0 x + w_1(赤い直線)がシグモイド関数にかけられて、$ \lbrack 0, 1 \rbrackの間に「押しつぶされる」イメージ
https://gyazo.com/8b97e4fadf8cee986a30c871a45c4102
この$ \phi(z)が、$ y = 1となる確率を示す(と解釈する)
以下のように、閾値によって、予測された確率を2値のラベルに変換するhttps://gyazo.com/a522a5fcc73f0d6a4dc341bafb7beb7c
https://gyazo.com/a522a5fcc73f0d6a4dc341bafb7beb7c
実用的には、クラスラベルだけでなく、「クラスに所属する確率」そのもの活用することが有益な場合が多い
たとえば「降水確率」のようなイメージ
多クラス分類
1対多アプローチにより多クラスの分類に対応できる
クラスごとに、「そのクラス」と「他のすべてのクラス」の2つに分類する、というモデルを作る
予測の際には、すべてのモデルで予測をしてみて、最もスコアの高いモデルの結果を最終的な予測結果として使う