Machine Learning

Stanford Univ, Coursera


Handling Skewed Datae

Skewed (歪んだ)データを扱う

癌を診断する 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
10
predicted1(1)
True
positive
(2)
False
positive
0(3)
False
positive
(4)
True
negative

しかし、0.50 % の患者だけが癌になるとしよう。 0.50 % というのは非常に小さい割合で、こういうデータを Skewed (歪んだ)データという。

このようにほとんどがネガティブ(0が正解)のデータに対しては、いつでも $y = 0$ と予測する システムはエラー率は非常に低くなり、この場合は0.05% である。 でもそんなシステムに意味はない。

actual
10
predicted10%0%
00.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)} $


Trading Off Pre3cision and Recall

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となる。

F${}_1$ Scoer (F Score)

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}}$
Yoshihisa Nitta

http://nw.tsuda.ac.jp/