癌を診断する logistic regression model をtrainした。
$\displaystyle y = \left\{
\begin{array}{l}
1 \quad\quad\quad \mbox{if cancer} \\
0 \quad\quad\quad \mbox{otherwise}
\end{array}
\right.$
test set によって 1 % のエラーを持つことがわかった。99 % は正しい。
[注意] これは以下の表で(1)+(4) = 99 % , (2)+(3) = 1 % ということである。
actual | |||
---|---|---|---|
1 | 0 | ||
predicted | 1 | (1) True positive | (2) False positive |
0 | (3) False positive | (4) True negative |
しかし、0.50 % の患者だけが癌になるとしよう。 0.50 % というのは非常に小さい割合で、こういうデータを Skewed (歪んだ)データという。
このようにほとんどがネガティブ(0が正解)のデータに対しては、いつでも $y = 0$ と予測する システムはエラー率は非常に低くなり、この場合は0.05% である。 でもそんなシステムに意味はない。
actual | |||
---|---|---|---|
1 | 0 | ||
predicted | 1 | 0% | 0% |
0 | 0.05 % | 99.95 % |
これは(4)の割合が非常に多く、歪んでいるからである。
システムの優劣を論じるには、(4)を除いた指標を用いる必要がある。
$\displaystyle \mbox{precision} = \frac{(1)}{(1)+(2)} $
$\displaystyle \mbox{recall} = \frac{(1)}{(1)+(3)} $
$\displaystyle F_1 \mbox{ score} = 2 \times \frac{\mbox{precision} \times \mbox{recall}}{\mbox{presicion}+\mbox{recall}} $
ちなみに、前に定義した Accuracy の定義は以下の通り。
$\displaystyle \mbox{accuracy} = \frac{(1)+(4)}{(1)+(2)+(3)+(4)} $
logistic linear regerssion を使っているとき $0 \leq h_{\theta}(x) \leq 1$ となる。
通常は次のように定める。
$\displaystyle y = \left\{
\begin{array}{l}
1 \quad\quad\quad \mbox{if } h_{\theta}(x) \geq 0.5 \\
0 \quad\quad\quad \mbox{otherwise}
\end{array}
\right.$
$h_{\theta}(x)$ の閾値 threshold を大きくするというのは、相当自信のあるときだけpositiveと予測することである。
$\displaystyle y = \left\{
\begin{array}{l}
1 \quad\quad\quad \mbox{if } h_{\theta}(x) \geq 0.7 \\
0 \quad\quad\quad \mbox{otherwise}
\end{array}
\right.$
こうすると(1)と(2)が減って(3)が増えるわけなので、(1)と(3)の比較である recall はlowとなる。
positiveと答えたときは相当自信があるわけなので、(1)と(2)の比較では(1)が大きくなり、
preciseはhighとなる。
$h_{\theta}(x)$ の閾値 threshold を大きくするというのは、あまり自信がなくてもpositiveと予測することである。
$\displaystyle y = \left\{
\begin{array}{l}
1 \quad\quad\quad \mbox{if } h_{\theta}(x) \geq 0.3 \\
0 \quad\quad\quad \mbox{otherwise}
\end{array}
\right.$
こうすると(1)と(2)が増えて(3)が増えるわけなので、(1)と(3)の比較である recall はhighとなる。
positiveと答えたときは間違いを相当復むので、(1)と(2)の比較では(2)が大きくなり、preciseはlowとなる。
precision と recall を使って優劣を論じるには、F${}_1$ score 値を使うとよい。 F${}_1$ scoreが大きいほど優れていいる。
$\displaystyle \mbox{F}{}_1 \mbox{ score} = 2 \frac{\mbox{precision} \times \mbox{recall}}{\mbox{precision}+\mbox{recall}}$