38
5ロジスティック回帰ROC曲線: 学習モデルの評価方法 AISECjp 2016.11.04 Presented by Isao Takaesu

ITエンジニアのための機械学習理論入門 第5章

Embed Size (px)

Citation preview

Page 1: ITエンジニアのための機械学習理論入門 第5章

第5章

ロジスティック回帰とROC曲線:

学習モデルの評価方法

AISECjp 2016.11.04

Presented by Isao Takaesu

Page 2: ITエンジニアのための機械学習理論入門 第5章

ロジスティック回帰?

(パーセプトロンと同じ)分類アルゴリズム

最尤推定法でパラメータを決定

LR & ROC

×:「このデータは t = 1 である」

〇:「t = 1 である確率は70%である」

AISECjp

Page 3: ITエンジニアのための機械学習理論入門 第5章

5.1

分類問題への最尤推定法の適用

LR & ROC AISECjp

Page 4: ITエンジニアのための機械学習理論入門 第5章

5.1.1 データの発生確率の設定

2種類のデータを分類する直線:f(x,y)

LR & ROC AISECjp

-30

-20

-10

0

10

20

30

40

-30 -20 -10 0 10 20 30 40

●●

● ●

●●

xx

xx

x

x

xx

xx

f(x,y) = 0 f(x,y) > 0

f(x,y) < 0

●:t = 1

x:t = 0

この方向にf(x,y)が

大きくなる

f 𝒙, 𝒚 = 𝒘𝟎 +𝒘𝟏𝒙 + 𝒘𝟐𝒚

Page 5: ITエンジニアのための機械学習理論入門 第5章

5.1.1 データの発生確率の設定

LR & ROC AISECjp

データの属性が「t=1」である確率

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

-1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

𝒂

𝜎 𝑎 =1

1 + 𝑒−𝑎

ロジスティック関数

Page 6: ITエンジニアのための機械学習理論入門 第5章

5.1.1 データの発生確率の設定

LR & ROC AISECjp

点(x,y)で得られたデータの属性が・・・

𝑷 𝒙, 𝒚 = 𝝈(𝒘𝟎 +𝒘𝟏𝒙 + 𝒘𝟐𝒚)

𝟏 − 𝑷 𝒙, 𝒚

の確率:𝑡 = 1

の確率:𝑡 = 0

Page 7: ITエンジニアのための機械学習理論入門 第5章

5.1.1 データの発生確率の設定

LR & ROC AISECjp

トレーニングセット で考える𝑥𝑛, 𝑦𝑛, 𝑡𝑛 𝑛=1𝑁

𝑷 𝒙𝒏, 𝒚𝒏の場合:

𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏

𝑡𝑛 = 1

𝑡𝑛 = 0 の場合:

𝑷𝒏 = 𝑷 𝒙𝒏, 𝒚𝒏𝒕𝒏 𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏

𝟏−𝒕𝒏

𝒙𝟎 = 𝟏, 𝒙𝟏 = 𝒙

Page 8: ITエンジニアのための機械学習理論入門 第5章

𝑃𝑛 = 𝑃 𝑥𝑛, 𝑦𝑛𝑡𝑛 1 − 𝑃 𝑥𝑛, 𝑦𝑛

1−𝑡𝑛

5.1.1 データの発生確率の設定

LR & ROC AISECjp

を使うと・・・

の場合:𝑡𝑛 = 1

𝑡𝑛 = 0 の場合:

𝑷𝒏 = 𝑷 𝒙𝒏, 𝒚𝒏𝟏 𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏

𝟎 = 𝑷 𝒙𝒏, 𝒚𝒏

𝑷𝒏 = 𝑷 𝒙𝒏, 𝒚𝒏𝟎 𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏

𝟏 = 𝟏 − 𝑷 𝒙𝒏, 𝒚𝒏

Page 9: ITエンジニアのための機械学習理論入門 第5章

𝑃𝑛 = 𝑃 𝑥𝑛, 𝑦𝑛𝑡𝑛 1 − 𝑃 𝑥𝑛, 𝑦𝑛

1−𝑡𝑛

5.1.1 データの発生確率の設定

LR & ROC AISECjp

𝑃 𝑥, 𝑦 = 𝜎(𝑤0 +𝑤1𝑥 + 𝑤2𝑦)

𝑷𝒏 = 𝒛𝒏𝒕𝒏 𝟏 − 𝒛𝒏

𝟏−𝒕𝒏

に、

を代入すると・・・

Page 10: ITエンジニアのための機械学習理論入門 第5章

5.1.1 データの発生確率の設定

LR & ROC AISECjp

𝒛𝒏って?

Page 11: ITエンジニアのための機械学習理論入門 第5章

5.1.1 データの発生確率の設定

LR & ROC AISECjp

𝒛𝒏とは 𝒛𝒏 = 𝝈 𝑾𝑻𝝋n

𝑾 =

𝒘𝟎𝒘𝟏𝒘𝟐

𝝋𝒏 =𝟏𝒙𝒏𝒚𝒏

トレーニングセットの全データを纏めると・・・

𝑷 =

𝒏=𝟏

𝑵

𝑷𝒏 =

𝒏=𝟏

𝑵

𝒛𝒏𝒕𝒏 𝟏 − 𝒛𝒏

𝟏−𝒕𝒏

𝝈(𝒘𝟎 +𝒘𝟏𝒙 + 𝒘𝟐𝒚)

Page 12: ITエンジニアのための機械学習理論入門 第5章

5.1.2 最尤推定法によるパラメータの決定

LR & ROC AISECjp

確率Pを最大化するパラメータ「W」を求める

パーセプトロン :確率的勾配降下法

ロジスティック回帰:ニュートン・ラフソン法

𝑾𝒏𝒆𝒘 = 𝑾𝒐𝒍𝒅 − Φ𝑻𝑹Φ

−𝟏ΦT 𝒛 − 𝒕

Page 13: ITエンジニアのための機械学習理論入門 第5章

5.1.2 最尤推定法によるパラメータの決定

LR & ROC AISECjp

の各成分

𝒕 =

𝒕𝟏⋮𝒕𝑵

Φ =𝟏 𝒙𝟏 𝒚𝟏⋮ ⋮ ⋮𝟏 𝒙𝑵 𝒚𝑵

𝒛 =

𝒛𝟏⋮𝒛𝑵

𝑾𝒏𝒆𝒘 = 𝑾𝒐𝒍𝒅 − Φ𝑻𝑹Φ

−𝟏ΦT 𝒛 − 𝒕

Rは、 を対角成分とした対角行列z𝒏 𝟏 − 𝒛𝒏

𝐑 = 𝒅𝒊𝒂𝒈 𝒛𝟏 𝟏 − 𝒛𝟏 , ⋯ , 𝒛𝑵 𝟏 − 𝒛𝑵

Page 14: ITエンジニアのための機械学習理論入門 第5章

5.1.2 最尤推定法によるパラメータの決定

LR & ROC AISECjp

𝒕 =

𝒕𝟏⋮𝒕𝑵

Φ =𝟏 𝒙𝟏 𝒚𝟏⋮ ⋮ ⋮𝟏 𝒙𝑵 𝒚𝑵

𝒛 =

𝒛𝟏⋮𝒛𝑵𝐑 = 𝒅𝒊𝒂𝒈 𝒛𝟏 𝟏 − 𝒛𝟏 , ⋯ , 𝒛𝑵 𝟏 − 𝒛𝑵

定数のベクトル/行列

パラメータ「W」に依存( )𝒛𝒏 = 𝝈 𝑾𝑻𝝋n

Page 15: ITエンジニアのための機械学習理論入門 第5章

5.1.2 最尤推定法によるパラメータの決定

LR & ROC AISECjp

を繰り返し計算し、確率Pを最大化

𝑾𝒏𝒆𝒘

𝑾𝒐𝒍𝒅

𝑾𝒏𝒆𝒘 = 𝑾𝒐𝒍𝒅 − Φ𝑻𝑹Φ

−𝟏ΦT 𝒛 − 𝒕

1. ⇒ 「z」と「R」を計算

2. 「z」と「R」を下記に代入

3. ⇒ ⇒「z」と「R」を計算

・・・

𝑾𝒐𝒍𝒅

𝑾𝒏𝒆𝒘

Page 16: ITエンジニアのための機械学習理論入門 第5章

5.1.2 最尤推定法によるパラメータの決定

LR & ROC AISECjp

計算の打ち切り条件

変化分の大きさの2乗 < 修正前の大きさの2乗

𝑾𝒏𝒆𝒘 −𝑾𝒐𝒍𝒅𝟐

𝑾𝒐𝒍𝒅𝟐< 𝟎. 𝟎𝟎𝟏

𝑾𝒏𝒆𝒘

𝑾𝒐𝒍𝒅

𝑾𝒏𝒆𝒘 −𝑾𝒐𝒍𝒅

Page 17: ITエンジニアのための機械学習理論入門 第5章

5.1.3 サンプルコードによる確認

LR & ROC AISECjp

パーセプトロン

vs

ロジスティック回帰

Page 18: ITエンジニアのための機械学習理論入門 第5章

5.1.3 サンプルコードによる確認

LR & ROC AISECjp

パーセプトロンの結果

少し偏った位置に分割線がある

Page 19: ITエンジニアのための機械学習理論入門 第5章

5.1.3 サンプルコードによる確認

LR & ROC AISECjp

ロジスティック回帰の結果

ほぼ中央部分に分割線がある

Page 20: ITエンジニアのための機械学習理論入門 第5章

5.1.3 サンプルコードによる確認

LR & ROC AISECjp

パーセプトロン

全データが分類されるとWの更新を停止

ロジスティック回帰

全体的な確率を最大化する

Page 21: ITエンジニアのための機械学習理論入門 第5章

5.2

ROC曲線による学習モデルの評価

LR & ROC AISECjp

Page 22: ITエンジニアのための機械学習理論入門 第5章

なぜROC曲線で評価?

は確率が1/2になる点

この確率(境界)は適切か?

LR & ROC AISECjp

f 𝑥, 𝑦 = 0

ROC曲線を使うことで

最適な境界を求めることが可能

Page 23: ITエンジニアのための機械学習理論入門 第5章

5.2.1 ロジスティック回帰の現実問題への適用

LR & ROC AISECjp

ウィルス感染検査の例

検査結果と感染/非感染の関係

-30

-20

-10

0

10

20

30

40

-30 -20 -10 0 10 20 30 40

●●

● ●

●●

xx

xx

x

x

xx

xx

●:感染

x:非感染

確率 80%

確率 50%

確率 20%

Page 24: ITエンジニアのための機械学習理論入門 第5章

5.2.1 ロジスティック回帰の現実問題への適用

LR & ROC AISECjp

真陽性率と偽陽性率を使う

Page 25: ITエンジニアのための機械学習理論入門 第5章

5.2.1 ロジスティック回帰の現実問題への適用

LR & ROC AISECjp

用語の定義

陽性 :発見したい属性を持つデータ(t=1)

陰性 :そうでないデータ(t=0)

真陽性:本当に陽性だったもの

偽陽性:本当は陰性だったもの

真陽性率:陽性データ全体での真陽性の割合

偽陽性率:陰性データ全体での偽陽性の割合

Page 26: ITエンジニアのための機械学習理論入門 第5章

5.2.1 ロジスティック回帰の現実問題への適用

LR & ROC AISECjp

真陽性率

(TP率)

偽陽性率

(FP率)

偽陰性

(FN)

真陽性

(TP)

真陰性

(TN)

偽陽性

(FP)

1

0 0

1

陰性と判定

陽性と判定

真陽性率と偽陽性率の定義

Page 27: ITエンジニアのための機械学習理論入門 第5章

5.2.1 ロジスティック回帰の現実問題への適用

LR & ROC AISECjp

真陽性率

(TP率)

偽陽性率

(FP率)

偽陰性

(FN)

真陽性

(TP)

真陰性

(TN)

偽陽性

(FP)

1

0 0

1

陰性と判定

陽性と判定

真陽性率と偽陽性率の定義

判定ライン

Page 28: ITエンジニアのための機械学習理論入門 第5章

5.2.1 ロジスティック回帰の現実問題への適用

LR & ROC AISECjp

「判定ライン」の設定 ⇒ ROC曲線を使う

Page 29: ITエンジニアのための機械学習理論入門 第5章

5.2.2 ROC曲線による性能評価

LR & ROC AISECjp

No. x y t P

1 24.43 6.95 1 0.98

2 8.84 11.92 1 0.91

3 18.69 -1.17 1 0.86

4 17.37 -0.07 1 0.86

5 4.77 11.66 1 0.85

6 0.83 10.74 0 0.73

7 1.57 8.51 1 0.69

8 10.07 -0.53 1 0.66

9 0.99 6.04 1 0.58

10 10.73 -4.88 0 0.53

11 11.16 -6.77 0 0.47

12 -11.21 14.64 0 0.46

トレーニングセットを確率順に並べたデータ

Page 30: ITエンジニアのための機械学習理論入門 第5章

5.2.2 ROC曲線による性能評価

LR & ROC AISECjp

トレーニングセットを確率順に並べたデータ

P>1:全データは「陰性」

真陽性率=0, 偽陽性率=0

P>0.95:No.1は「陽性」

真陽性率=1/10, 偽陽性率=0

P>0.90:No.1~2は「陽性」

真陽性率=2/10, 偽陽性率=0

Page 31: ITエンジニアのための機械学習理論入門 第5章

5.2.2 ROC曲線による性能評価

LR & ROC AISECjp

判定ラインの変更でTP率とFP率が変化する様子

真陽性率

(TP率)

偽陽性率

(FP率)

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Page 32: ITエンジニアのための機械学習理論入門 第5章

5.2.3 サンプルコードによる確認

LR & ROC AISECjp

ERR 9.0%の場合

Page 33: ITエンジニアのための機械学習理論入門 第5章

5.2.3 サンプルコードによる確認

LR & ROC AISECjp

ERR 22.0%の場合

Page 34: ITエンジニアのための機械学習理論入門 第5章

5.2.3 サンプルコードによる確認

LR & ROC AISECjp

箱の左上の角 ⇒ 理想の判定方法(TP=1, FP=0)

・左上の角付近を通るROC曲線:有用性が高い

・右下の部分の面積が大きい:優秀なアルゴリズム

Page 35: ITエンジニアのための機械学習理論入門 第5章

5.2.3 サンプルコードによる確認

LR & ROC AISECjp

理想の判定法 すべてを「陽性」と判定

一定確率でランダムに

「陽性」と判定する

すべてを「陰性」

と判定する

Page 36: ITエンジニアのための機械学習理論入門 第5章

私的なまとめ

LR & ROC AISECjp

ログ分析(攻撃検知)に使えそう

例)60%以上 ⇒ 人間による精査

60%未満 ⇒ 異常なしと判断

ROC曲線は他アルゴリズムの性能検証にも使える

計算時間は多くなるか?

パーセプトロンも捨てたもんじゃない

Page 37: ITエンジニアのための機械学習理論入門 第5章

LR & ROC AISECjp

機械学習アルゴリズムは適材適所で!!

私的なまとめ

Page 38: ITエンジニアのための機械学習理論入門 第5章

• Download “.PDF” version of this document:

≫ http://ssmjp.connpass.com/event/40469/