機械学習

(分類を行う)ロジスティック回帰分析の相乗モデルから発生確率を計算してみた

代表的な機械学習フレームワークであるscikit-learnに、アヤメのデータセットが含まれているため、これを利用したアヤメの分類を考える。

scikit-learnに含まれるアヤメのデータセットの内容を確認すると、例えば、以下のようになっている。

アヤメのデータセット

また、このデータから、versicolorとvirginicaの、petal length (cm)とpetal width (cm)の値を一部抜粋してグラフ化した結果は、以下の通り。

アヤメのデータセットのグラフ(抜粋)

この図を見ると、petal length (cm)が5以上でpetal width (cm)が1.7以上だとvirginicaで、そうでないとversicolorと分類できそうである。



サラリーマン型フリーランスSEという働き方でお金の不安を解消しよう先日、「サラリーマン型フリーランスSE」という働き方を紹介するYouTube動画を視聴しましたので、その内容をご紹介します。 「サ...

このような分類を行う手法の1つに、ロジスティック回帰分析がある。

ロジスティック回帰分析とは、いくつかの要因(説明変数)から「2値の結果(目的変数)」が起こる確率を説明・予測することができる統計手法のことをいい、いくつかの要因(説明変数)をオッズで表現することで、その確率を計算することができる。

例えば、petal length (cm)【下表ではpl】が5以上か、petal width (cm)【下表ではpw】が1.7以上かどうかの2つの条件下で、アヤメがvirginicaである株数を仮設定して、アヤメがvirginicaである確率やオッズ・オッズ比を計算すると、以下のようになる。

説明変数virginica?アヤメが
virginicaで
ある確率
アヤメが
virginicaである
場合のオッズ
(条件0に
対する)
オッズ比
pl
≧5?
pw
≧1.7?
Yes
(株)
No
(株)
条件0NoNo\(1\)\(10\)\(\displaystyle \frac{1}{1+10} = \frac{1}{11}\)\(\frac{\displaystyle \frac{1}{11}}{\displaystyle \frac{10}{11}}=\displaystyle \frac{1}{10}(=B)\)
条件1YesNo\(16\)\(10\)\(\displaystyle \frac{16}{16+10} = \frac{16}{26}\)\(\displaystyle \frac{16}{10} = B \times 16\)\(16\)
条件2NoYes\(15\)\(10\)\(\displaystyle \frac{15}{15+10} = \frac{15}{25}\)\(\displaystyle \frac{15}{10} = B \times 15\)\(15\)

なお、virginicaの確率やオッズは、以下の式で計算できる。

(アヤメがvirginicaである確率)= (virginicaの株数)/(全体の株数)
(アヤメがvirginicaである場合のオッズ)
=(アヤメがvirginicaである確率)/(1 -(アヤメがvirginicaである確率))
=(アヤメがvirginicaである株数)/(アヤメがvirginicaでない株数)

これを一般化すると、以下のように表現できる。

説明変数virginica?アヤメが
virginicaで
ある確率
アヤメが
virginicaである
場合のオッズ
(条件0に
対する)
オッズ比
pl
≧5?
pw
≧1.7?
Yes
(株)
No
(株)
条件0NoNo\(c_0\)\(d_0\)\(\displaystyle \frac{c_0}{c_0+d_0}\)\(\frac{\displaystyle \frac{c_0}{c_0+d_0}}{\displaystyle \frac{d_0}{c_0+d_0}} = \displaystyle \frac{c_0}{d_0}(=B)\)
条件1YesNo\(c_1\)\(d_1\)\(\displaystyle \frac{c_1}{c_1+d_1}\)\(\displaystyle \frac{c_1}{d_1} = B \times A_1\)\(A_1\)
条件2NoYes\(c_2\)\(d_2\)\(\displaystyle \frac{c_2}{c_2+d_2}\)\(\displaystyle \frac{c_2}{d_2} = B \times A_2\)\(A_2\)

さらに、リスク要因が複数あるとき、ある事象の発生確率を個々のリスクのオッズ比の積で表せると仮定すると、条件3の各値は、以下のように表現できる。

説明変数virginica?アヤメが
virginicaで
ある確率
アヤメが
virginicaである
場合のオッズ
(条件0に
対する)
オッズ比
pl
≧5?
pw
≧1.7?
Yes
(株)
No
(株)
条件3YesYes\(c_3\)\(d_3\)\(\displaystyle \frac{c_3}{c_3+d_3}\)\(\displaystyle \frac{c_3}{d_3} = B \times A_1 \times A_2\)\(A_1 \times A_2\)

以上より、条件0~条件3のオッズをまとめると、以下の式で表される。
\[
\begin{eqnarray}
\displaystyle \frac{p}{1-p} &=& B \times {A_1}^{x_1} \times {A_2}^{x_2} \\\\
p &:& アヤメが\mathrm{virginica}である確率 \\
B &:& 条件0(\mathrm{pl}<5、かつ、\mathrm{pw}<1.7)のオッズ \\
A_1 &:& (条件0に対する)条件1(\mathrm{pl}≧5)のオッズ比 \\
x_1 &:& (条件1に対する)0か1の値 \\
A_2 &:& (条件0に対する)条件2(\mathrm{pw}≧1.7)のオッズ比 \\
x_2 &:& (条件2に対する)0か1の値
\end{eqnarray}
\]



Androidロックを解除する裏ワザ「4uKey for Android」をご紹介Android端末では、以下の画像のような画面ロックパスワードを設定することができますが、このパスワードを忘れてしまうと、Android...

前述の\(\displaystyle \frac{p}{1-p} = B \times {A_1}^{x_1} \times {A_2}^{x_2}\)の両辺に自然対数をとり、式変形していく。
\[
\begin{eqnarray}
\log \displaystyle \frac{p}{1-p} &=& \log \left( B \times {A_1}^{x_1} \times {A_2}^{x_2} \right) \\
&=& \log B + \log {A_1}^{x_1} + \log {A_2}^{x_2} \\
&=& \log B + {x_1}\log {A_1} + {x_2}\log {A_2} \\
&=& \log B + \log {A_1} \times {x_1} + \log {A_2} \times {x_2}
\end{eqnarray}
\]

\(Y = \log B + \log {A_1} \times {x_1} + \log {A_2} \times {x_2}\)と置き換え、式変形していく。
\[
\begin{eqnarray}
\log \displaystyle \frac{p}{1-p} &=& Y \\
\displaystyle \frac{p}{1-p} &=& e^Y \\
p &=& (1-p)e^Y \\
p &=& e^Y – pe^Y \\
p + pe^Y &=& e^Y \\
p(1 + e^Y) &=& e^Y \\
p &=& \displaystyle \frac{e^Y}{1 + e^Y} \\
&=& \displaystyle \frac{1}{e^{-Y} + 1} \\
&=& \displaystyle \frac{1}{1 + e^{-Y}} \\
&=& \displaystyle \frac{1}{1 + \exp(-Y)} \\
&=& \displaystyle \frac{1}{1 + \exp{ \{ -(\log B + \log {A_1} \times {x_1} + \log {A_2} \times {x_2}) \} }}
\end{eqnarray}
\]

ここで、\(b = \log B\)、\(a_1 = \log {A_1}\)、\(a_2 = \log {A_2}\)と置き換えると、
\[
\begin{eqnarray}
p = \displaystyle \frac{1}{1 + \exp{ \{ -(b + {a_1}{x_1} + {a_2}{x_2}) \} }}
\end{eqnarray}
\]
となり、シグモイド関数の数式となる。

例えば、\(B=0.1\)、\(A_1=16\)、\(A_2=15\)とした場合の確率pの値を計算した結果は、以下のようになる。

pの値を計算した結果

要点まとめ

  • ロジスティック回帰分析とは、いくつかの要因(説明変数)から「2値の結果(目的変数)」が起こる確率を説明・予測することができる統計手法のことをいう。
  • (オッズ)=(発生確率)/(1 -(発生確率))で表現できる。
  • オッズから発生確率を計算すると、シグモイド関数の数式となる。